这是我的log4j2.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT" ignoreExceptions="false">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="Log4JFile" fileName="/log/Log4JFile.log">
<PatternLayout>
<Pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="Console"/>
<AppenderRef ref="Log4JFile"/>
</Root>
</Loggers>
</Configuration>
我正在使用Jboss,如果您不包含配置文件,log4j
会将所有内容记录到server.log
。我需要将log4j
加stdout
和stderr
的所有级别记录到一个不是默认文件的单独文件中。如何在不重写Java中的print方法的情况下完成此操作?
答案 0 :(得分:0)
您无法从Log4j ConsoleAppender重定向到Log4j FileAppender。
您可以做的是在启动应用程序的脚本/命令中,将该命令的输出重定向到文件。这种语法取决于操作系统,但通常看起来像command > file
。多个>
个字符可以附加到现有文件而不是覆盖它。 (也取决于操作系统。)