我正在帮助一个有项目的朋友。他使用Spring;我不是。我给了他一个log4j.xml
文件,用于启用日志记录到logs/
子目录中的文件。他尝试了log4j.xml
,但他的应用程序忽略了它(不会对其存在或不存在作出反应),将输出发送到控制台。看来Spring正在自动配置log4j
来执行此操作。我们还尝试-Ddebug.log4j=true
在涉及Spring时查找有关log4j
初始化的更多信息,但该参数无效。
答案 0 :(得分:2)
默认情况下,log4j不会对其配置做任何假设,它肯定需要配置文件或编程配置。
它会扫描log4j.properties
或log4j.xml
的类路径。如果您更喜欢不同的路径和不同的名称,则需要传递类似的系统变量
-Dlog4j.configuration=relative_path_to_file.xml
答案 1 :(得分:0)
目前正在我们的项目中
我们使用下面的xml文件
<appender name="EvolutionWebASYNC" class="org.apache.log4j.AsyncAppender">
<appender-ref ref="logFileOut" />
</appender>
<appender name="logFileOut" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="C:/home/wasadmin/applogs/myproject/myproject.log" />
<param name="Append" value="true" />
<param name="Threshold" value="ALL" />
<param name="MaxFileSize" value="10MB" />
<param name="MaxBackupIndex" value="5" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d %-5p - [TXID: %X{TXID}] [UID: %X{UID}] [ORGOID: %X{ORGOID}] [UA_ORGOID: %X{UA_ORGOID}] - %m%n" />
</layout>
</appender>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d %-5p - [TXID: %X{TXID}] [UID: %X{UID}] [ORGOID: %X{ORGOID}] [UA_ORGOID: %X{UA_ORGOID}] - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="EvolutionWebASYNC" />
</root>
我希望它有所帮助!!!