log4j 关闭 Catalina 的日志记录,out

4si2a6ki  于 2022-11-06  发布在  其他
关注(0)|答案(3)|浏览(234)

我已经将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
但没有成功

gkl3eglg

gkl3eglg1#

解决方案:配置为记录到/dev/null

2jcobegt

2jcobegt2#

下面是一个使用log4j的示例

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

解决方案:您可以使用几行代码在应用程序中禁用 Catalina 日志。

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-------------");
qxgroojn

qxgroojn3#

您可以尝试以下操作来禁用对catalina.out的写入:
1.查找并编辑文件:{ Catalina }/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

相关问题