在何处配置内部tomcat7标准输出/标准输出日志文件

在何处配置内部tomcat7标准输出/标准输出日志文件,tomcat,logging,log4j,tomcat7,Tomcat,Logging,Log4j,Tomcat7,我正在使用ApacheTomcat7.0.40和Log4j配置,根据 除了创建了一些日志文件之外,其他一切都正常工作,这些日志文件实际上没有在mylog4j.properties中配置: log4j.rootLogger=INFO, CATALINA # Define all the appenders log4j.appender.CATALINA=org.apache.log4j.RollingFileAppender log4j.appender.CATALINA.File=${cata

我正在使用ApacheTomcat7.0.40和Log4j配置,根据

除了创建了一些日志文件之外,其他一切都正常工作,这些日志文件实际上没有在my
log4j.properties
中配置:

log4j.rootLogger=INFO, CATALINA

# Define all the appenders
log4j.appender.CATALINA=org.apache.log4j.RollingFileAppender
log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.log
log4j.appender.CATALINA.MaxFileSize=3MB
log4j.appender.CATALINA.MaxBackupIndex=10
log4j.appender.CATALINA.Append=true
log4j.appender.CATALINA.Encoding=UTF-8
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.LOCALHOST=org.apache.log4j.RollingFileAppender
log4j.appender.LOCALHOST.File=${catalina.base}/logs/localhost.log
log4j.appender.LOCALHOST.MaxFileSize=3MB
log4j.appender.LOCALHOST.MaxBackupIndex=10
log4j.appender.LOCALHOST.Append=true
log4j.appender.LOCALHOST.Encoding=UTF-8
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.MANAGER=org.apache.log4j.RollingFileAppender
log4j.appender.MANAGER.File=${catalina.base}/logs/manager.log
log4j.appender.MANAGER.MaxFileSize=3MB
log4j.appender.MANAGER.MaxBackupIndex=10
log4j.appender.MANAGER.Append=true
log4j.appender.MANAGER.Encoding=UTF-8
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.HOST-MANAGER=org.apache.log4j.RollingFileAppender
log4j.appender.HOST-MANAGER.File=${catalina.base}/logs/host-manager.log
log4j.appender.HOST-MANAGER.MaxFileSize=3MB
log4j.appender.HOST-MANAGER.MaxBackupIndex=10
log4j.appender.HOST-MANAGER.Append=true
log4j.appender.HOST-MANAGER.Encoding=UTF-8
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

# Configure which loggers log to which appenders
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=\
  INFO, MANAGER
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]=\
  INFO, HOST-MANAGER
创建的文件(尽管它们不在我的配置中)包括:

  • commons-daemon.yyy-MM-dd.log
  • tomcat7-stderr.yyy-MM-dd.log
  • tomcat7-stdout.yyy-MM-dd.log
正如您所见,他们使用的是
DailRollingFileAppender
,这是不需要的,因为我需要一个免维护的系统。所以我更喜欢使用
maxBackupIndex
RollingFileAppender
,以防止日志无限增长


那么,在哪里可以配置
stdout
stderr
commons守护进程
日志?是否有一些配置,或者我可以用自己的Log4j配置覆盖配置?Thx

我也遇到了同样的问题,最后偶然发现了解决方案。Tomcat 7 for windows有一个名为Monitor Tomcat的Tomcat属性应用程序。在logging选项卡上,您需要删除redirect stdout和stderr输入框中的“auto”值。只需将其留空,它就不会创建这些文件。然后,您可以使用log4j为这些关键文件创建滚动日志文件,以便将来进行调试


希望对您有所帮助。

在windows上,您必须转到tomcat/bin/service.bat并编辑PR_LOGPATH变量(所有变量)。 并可能通过“服务删除”和“服务安装”重新安装服务
在linux系统上,解决方案必须非常相似

我预计我们在将来的某个时间会有类似的需求/在我们的一个系统上面临相同的问题。所以我很想自己找到一些解决方案

首先查看commons守护进程,看看是否有任何配置可以实现日志上的maxbackupindex;但是搜索并没有多大帮助

然而,我发现了人们处理“tomcat日志跨越限制”的两种方法

第一种方法:在Tomcat中进行内部配置
  • 在Tomcat中的以下路径中找到
    context.xml

    YourTomcatInstallDir\conf\context.xml  
    
  • 编辑上下文标记以添加如下内容:-

    <Context swallowOutput="true">
    
    (在
    yourapper
    上,现在可以设置
    MaxBackupIndex
    MaxFileSize
    以实现定义的滚动次数和日志大小限制。)

  • 如果上述方法不起作用;您可以尝试使用第二种方法中提到的外部实用程序

    第二种方法:使用“logrotate”进行外部配置 有一个名为
    logrotate
    的简单工具可用于在您无法控制的日志上实现所需的效果。这里有一些链接可以帮助您开始

    这个工具的使用非常简单,快速浏览这些链接可以得到您需要的东西

    禁用在ProLUN GUI中创建日志文件 短版

    那么在哪里可以配置stdout、stderr和commons守护程序日志呢

    在Procrun GUI中

    是否有一些配置,或者我可以用自己的Log4j配置覆盖配置

    不,我希望,但我不这么认为。但是这里有一个阻止Procrun完全记录日志的肮脏方法:将
    日志路径:
    设置为
    NOTADRIVE:
    (包括后面的
    )。然后三个日志文件(commons守护进程、stderr、stdout)都不会创建

    PS C:\> handle -nobanner commons-daemon                                                                                                                                                                                                                                        No matching handles found.
    
    中等版本:我对这个解决方案不是非常满意,但对于我必须管理的Tomcat,我设置了以下几项:

    • 我已经从我的webapps中最小化了进入catalina.out/stdout/stderr文件的内容:我已经从webapps自己的日志配置中删除了所有控制台日志记录。(毕竟:不需要在webapps自己的Log4J管理日志和catalina.out/stderr/stdout中都有相同的日志。)
    • 我已经最小化了Tomcat本身的catalina.out/stdout/stderr文件:我已经从logging.properties中删除了ConsoleHandler。(道理是一样的:不需要记录两次。)
    • 我(现在)决定保留Procrun的日志(commons守护进程、stdout、stderr)。但我希望通过每周重新启动和清理工作的结合,以某种方式限制它们可以增长到的规模。每周自动重启可确保Procrun将启动这三个文件的一组新文件(并带有时间戳)。每周自动化的工作会在一段时间后清理这些旧文件
    • 我考虑过使用,但无法使其与锁定访问的文件一起工作。(即使使用
      copyruncate
      目录也不能做到这一点。)也许将来我会再试一次
    • 还有一件事还没有尝试过:Tomcat的属性
    长版本见下文。(这是一个漫无目的的深潜水。考虑一下自己的警告。)
    Tomcat作为Windows服务 默认的Windows安装程序将Tomcat注册为服务

    其内部机制称为

    这有Unix和Windows版本。Win32版本被称为“ProCurn”

    Procrun有一个GUI,严格地说,这个GUI被称为“”但我会掩饰这一切,假装这一切都叫做“Procrun”

    ProLUN不使用标准的Windows事件日志框架。相反,ProCurn将创建一些日志文件。让我们启动GUI,看看它们是什么

    启动Procrun GUI Windows图标的标签只是
    监视器Tomcat

    在默认安装中,这是启动
    “C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin\Tomcat7w.exe”//MS//Tomcat7

    开始这项操作后,您将直接进入Procrun的
    Logging
    选项卡

    ProLUN的“日志”选项卡 这是新安装后Procrun的“日志”选项卡的屏幕截图
    PS C:\> Get-Content -Path "C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\commons-daemon.2020-09-08.log"
    
    [2020-09-08 16:06:28] [info]  [ 4276] Commons Daemon procrun (1.0.15.0 64-bit) started
    [2020-09-08 16:06:28] [info]  [ 4276] Running 'Tomcat7' Service...
    [2020-09-08 16:06:28] [info]  [17304] Starting service...
    [2020-09-08 16:06:29] [info]  [17304] Service started in 1135 ms.
    [2020-09-08 16:09:24] [info]  [11520] Stopping service...
    [2020-09-08 16:09:25] [info]  [11520] Service stop thread completed.
    [2020-09-08 16:09:25] [info]  [ 4276] Run service finished.
    [2020-09-08 16:09:25] [info]  [ 4276] Commons Daemon procrun finished
    
    PS C:\> handle.exe commons-daemon                                                                                                                                                                                                                                              
    Nthandle v4.22 - Handle viewer
    Copyright (C) 1997-2019 Mark Russinovich
    Sysinternals - www.sysinternals.com
    
    Tomcat7.exe        pid: 4880   type: File           1B8: C:\Windows\System32\IDONTCARE\commons-daemon.2020-09-08.log
    
    
    PS C:\> handle -nobanner IDONTCARE                                                                                                                                                                                                                                             Tomcat7.exe        pid: 4880   type: File           1B8: C:\Windows\System32\IDONTCARE\commons-daemon.2020-09-08.log
    Tomcat7.exe        pid: 4880   type: File           1BC: C:\Windows\System32\IDONTCARE\tomcat7-stdout.2020-09-08.log
    Tomcat7.exe        pid: 4880   type: File           1D4: C:\Windows\System32\IDONTCARE\tomcat7-stdout.2020-09-08.log
    Tomcat7.exe        pid: 4880   type: File           1D8: C:\Windows\System32\IDONTCARE\tomcat7-stderr.2020-09-08.log
    Tomcat7.exe        pid: 4880   type: File           1DC: C:\Windows\System32\IDONTCARE\tomcat7-stderr.2020-09-08.log
    
    PS C:\> handle -nobanner commons-daemon                                                                                                                                                                                                                                        No matching handles found.
    
    PS C:\> handle.exe commons-daemon                                                                                      
    Nthandle v4.22 - Handle viewer
    Copyright (C) 1997-2019 Mark Russinovich
    Sysinternals - www.sysinternals.com
    
    Tomcat7.exe        pid: 7504   type: File            88: C:\Windows\System32\LogFiles\Apache\commons-daemon.2020-08-31.log