尝试了其他问题的答案,但无法解决问题
我有用于配置log4j的xml文件。创建了两个日志文件,但文件为空。我无法写入文件。
这是我的xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration
xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="ErrorAPPENDER"
class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="D://Error.log" />
<param name="Append" value="true" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd,HH:mm:ss},%m%n" />
</layout>
</appender>
<appender name="EventAPPENDER"
class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="D://Event.log" />
<param name="Append" value="true" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd,HH:mm:ss},%m%n" />
</layout>
</appender>
<appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
</appender>
<logger name="Event" additivity="false">
<level value="debug" />
<appender-ref ref="EventAPPENDER" />
</logger>
<logger name="Error" additivity="false">
<level value="debug" />
<appender-ref ref="ErrorAPPENDER" />
</logger>
<root>
<priority value="debug" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4j:configuration>
这是初始化类
package com.mobios.common;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Log4JUtil {
public static final Logger logger= Logger.getLogger(Log4JUtil.class);
}
这就是我登录的方式
Log4JUtil.logger.getLogger("ErrorAPPENDER").error("sdsffd");
但是没有任何内容写入日志文件。我看不到任何错误,我尝试了其他问题中提到的解决方案。
答案 0 :(得分:1)
在迄今为止已初始化的所有记录器中,记录器始终由唯一名称标识
Logging.getLogger(Log4jUtil.class)创建名称为“ com.mobios.common.Log4jUtil”(Log4jUtil.class.getName())的记录器,或返回已创建的具有该名称的记录器 https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Logger.html#getLogger(java.lang.Class)
在log4j.xml文件中,尚未创建任何名称为“ com.mobios.common.Log4jUtil”的记录器。您创建的记录器的名称为“事件”,“错误”
您可以使用“ com.mobios.common.Log4jUtil”在log4j.xml文件中添加一个部分,并向其中添加“事件”和“错误”处理程序,以便将其记录到相应的文件中
<logger name="com.mobios.common.Log4jUtil" additivity="false">
<level value="debug" />
<appender-ref ref="EventAPPENDER" />
<appender-ref ref="ErrorAPPENDER" />
</logger>
在进行日志记录时,您无需再次使用getLogger()调用记录消息。 在您的Log4jUtil.class中,您只需完成
logger.error("sdsffd")
在其他类中,如果要使用Log4jUtil.class中的记录器,则可以执行
Logger.getLogger(Log4JUtil.class)
,这将返回一个已实例化的记录器,并附加了处理程序
package com.mobios.common;
import org.apache.log4j.Logger;
public class AnotherClass {
public static final Logger logger= Logger.getLogger(Log4JUtil.class);
}