我在XML中指定log4j2 logger的文件名,如下所示。一切正常,但我得到了错误
2017-09-06 16:54:33,496主要错误未知的对象"RlandAccessFileAppender的类型org.apache.logging.log4j.core.appender.RlandAccessFileAppender被忽略:尝试嵌套它在其中之一:["Appender","Logger","Properties","脚本","CustomLevels"]。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration package="log4j.test"
status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{dd/MM/yyyy HH:mm:ss} %c %m%n"/>
</Console>
</Appenders>
<RandomAccessFile name="FILE" fileName="${sys:log4j.saveDirectory}/CMSAutomation.${date:yyyy-MM-dd_hh-mm-ss}.log" append="true" immediateFlush="false">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-6p %C{1}.%t:%L >>> %m%n"/>
</RandomAccessFile >
<Loggers>
<Logger name="log4j.test.Log4jTest" level="debug">
<AppenderRef ref="Console"/>
</Logger>
<Root level="trace">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
出现此错误的原因是RandomAccessFile
appender
中未定义
下面是定义任何
appender
的正确方法,包括RandomAccessFile
appender
-
<?xml version="1.0" encoding="UTF-8"?>
<Configuration package="log4j.test"
status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{dd/MM/yyyy HH:mm:ss} %c %m%n"/>
</Console>
<RandomAccessFile name="FILE" fileName="${sys:log4j.saveDirectory}/CMSAutomation.${date:yyyy-MM-dd_hh-mm-ss}.log" append="true" immediateFlush="false">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-6p %C{1}.%t:%L >>> %m%n"/>
</RandomAccessFile>
</Appenders>
<Loggers>
<Logger name="log4j.test.Log4jTest" level="debug">
<AppenderRef ref="Console"/>
</Logger>
<Root level="trace">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
您可以检查相同的log4j2留档在这里。
另外一点,您没有在任何
记录器
中使用RandomAccessFile
appender。如果您不在任何记录器中定义它,它将无法工作。
我正在尝试通过代码添加一个自定义的附加器,该附加器应该记录一些包。所有的工作都使用以下代码: 所以简而言之..正如您所看到的,如果之前没有定义追加器,我正在创建一个追加器。然后我为org.test创建一个记录器(如果没有添加的话),并将appender添加到这个记录器中。 多谢了。
在log4j1.2中,您只需在运行时获取一个记录器并添加一个appender。例如,这对于测试目的很方便。我们曾经创建一个模拟appender并将其添加到记录器中。随后,我们可以做出不同的断言。 log4j2的等价物是什么? 例如,这个例子展示了其他人是如何添加测试附加器的。 log4j2页面显示了一些关于如何添加附加器的示例。但是,它们将追加器添加到整个上下文中。这似乎不同于为一个特定的记录器添
我试图从Log4j 1.7迁移到Log4j2.4在1.7中,我通过扩展org.apache.log4j创建AppLogger类。记录器和使用扩展的调试/错误/致命方法,例如, 但是在log4j2中。x、 我无法扩展类组织。阿帕奇。登录中。log4j。记录器;实现这一目标的最佳方式是什么?
我有下面的Log4J2配置XML: 但是,每当log4j2 appender写入文件时,它在写入指定的文件路径时不会使用正确的字符串。 log4j2 appender第一次写入文件时,会写入由指定的正确文件路径。但是,只要将具有另一个Id的员工的信息放入线程上下文中,appender仍然会记录到旧文件路径。 例如,appender第一次记录时,它会写入正确的路径: 但当记录器记录下一个员工Id(使
我有麻烦配置我的log4j2.xml文件包括Hibernate日志记录。 这是我的xml文件: 在启动我的罐子时,我会将以下内容打印到控制台: 我似乎从我的应用程序中获取日志到我的滚动文件中,但我不明白为什么这个hibernate记录器没有使用相同的appender。 非常感谢您的帮助!
在XML中,我想要的配置如下所示(但我不想使用XML):