关闭记录到 catalina.out

Turn off logging to catalina.out

我已将 log4j 配置为记录到不同的文件,我希望 tomcat 完全停止记录到 catalina.out。 好像不可能。

尝试过

Not to log to catalina.out

https://serverfault.com/questions/476647/why-does-tomcat7-log-into-both-catalina-out-and-catalina-yyyy-mm-dd-log

他们没有工作

解决方法:配置为登录到/dev/null

下面是一个使用 log4j 的例子

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

解决方法: 您可以使用几行代码在您的应用程序中禁用登录到 catalina.out。

    ConsoleAppender console = new ConsoleAppender(); 
    String PATTERN = "%d{dd MMM yyyy HH:mm:ss} %5p %l %m%n";
    console.setLayout(new PatternLayout(PATTERN)); 
    console.setThreshold(Level.OFF);  // disable log to console (catalina.out)
    console.activateOptions();
    Logger.getRootLogger().addAppender(console);
    RollingFileAppender rfa = new RollingFileAppender(); // set log to another file
    rfa.setName(warName);
    rfa.setImmediateFlush(true);
    rfa.setFile(System.getProperty("catalina.home") + "/logs/"+warName+".log");
    rfa.setLayout(new PatternLayout("%d{dd MMM yyyy HH:mm:ss} %5p %l %m%n"));
    rfa.setThreshold(Level.DEBUG);
    rfa.setAppend(true);
    rfa.setMaxFileSize("10MB");
    rfa.setMaxBackupIndex(50);
    rfa.activateOptions();
    Logger.getRootLogger().addAppender(rfa);
    // at this point you can log with:
    Logger log = Logger.getRootLogger();
    log.debug("------------xxxxxxxxxxxxxxxx-------------");

您可以尝试按照以下方法禁用写入 catalina.out :

  1. 找到并编辑文件:{CATALINA_BASE}/bin/catalina.sh

找到“CATALINA_OUT”并将路径替换为“/dev/null”:

 CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out // Original Location
 CATALINA_OUT=/dev/null // replace path to /dev/null