按类名将日志重定向到特定的日志文件

时间:2015-04-07 20:06:03

标签: java logging log4j

我想按类名将日志重定向到特定的日志文件。目的是让一组类将日志输出到特定的日志文件。

现在所有输出都进入控制台,并在启动时抛出错误并显示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>

1 个答案:

答案 0 :(得分:0)

我相信记录器的名称应该是

<logger name="com.mycomp.*"...

因为它将解析为包中的任何具体类。