我想按类名将日志重定向到特定的日志文件。目的是让一组类将日志输出到特定的日志文件。
现在所有输出都进入控制台,并在启动时抛出错误并显示log4j:ERROR Could not retrieve category [com.mycomp]. Reported error follows.
。
我在这里做错了什么?
在我的java类中: -
private static final Logger log = Logger.getLogger(SpringBootLog4jApplication.class.getName());
我的log4j.xml: -
<?xml version="1.0" encoding="UTF-8" ?>
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' debug="false">
<appender name="LOGFILE" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="/git/services.log"/>
<param name="maxBackupIndex" value="10"/>
<param name="maxFileSize" value="20MB"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %x %p %c{1} :: %m\n"/>
</layout>
</appender>
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<!-- Pattern to output the caller's file name and line number -->
<param name="ConversionPattern" value="%5p [%t] (%F:%L) - %m%n"/>
</layout>
</appender>
<logger name="com.mycomp" class="com.mycomp.SpringBootLog4jApplication" additivity="false">
<level value="INFO"/>
<appender-ref ref="LOGFILE"/>
</logger>
<root>
<level value="INFO"/>
<appender-ref ref="stdout"/>
</root>
答案 0 :(得分:0)
我相信记录器的名称应该是
<logger name="com.mycomp.*"...
因为它将解析为包中的任何具体类。