Java 使用Log4J的同一类中的不同记录器

Java 使用Log4J的同一类中的不同记录器,java,log4j,Java,Log4j,我希望从同一类中生成的特定消息被单独记录。那么,如何在同一个类中创建两种不同类型的记录器呢。当前,属性文件如下所示 log4j.rootCategory=DEBUG, O # Stdout log4j.appender.O=org.apache.log4j.ConsoleAppender log4j.appender.O.layout=org.apache.log4j.PatternLayout log4j.appender.O.layout.ConversionPattern=[%d{ISO

我希望从同一类中生成的特定消息被单独记录。那么,如何在同一个类中创建两种不同类型的记录器呢。当前,属性文件如下所示

log4j.rootCategory=DEBUG, O

# Stdout
log4j.appender.O=org.apache.log4j.ConsoleAppender
log4j.appender.O.layout=org.apache.log4j.PatternLayout
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n

# File
log4j.appender.MESSAGE=org.apache.log4j.RollingFileAppender
log4j.appender.MESSAGE.File=target/logs/messages.log
# Control the maximum log file size
log4j.appender.MESSAGE.MaxFileSize=1000KB
# Archive log files (one backup file here)
log4j.appender.MESSAGE.MaxBackupIndex=100
log4j.appender.MESSAGE.layout=org.apache.log4j.PatternLayout
log4j.appender.MESSAGE.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M           (%        F:%    L) - %m%n
log4j.appender.MESSAGE.

log4j.category.failedMessagesLog=INFO, MESSAGE
我在我的代码中使用的登录方式是:– /**记录器*/

Logger logger = Logger.getLogger(MyClass.class);
Logger msgLogger = Logger.getLogger("MESSAGE");

在测试之后,我创建了一个空的日志文件(messages.log)。
有什么建议吗???

创建两个具有不同名称的记录器。您可以根据每个名称对其进行配置。 一种简单的方法是在类名中添加后缀。e、 g

Log log1 = LogFactory.getLog(getClass().getName()+".log1");
Log log2 = LogFactory.getLog(getClass().getName()+".log2");
在属性文件中

log4j.category.mypackage.myclass.log1=INFO, MESSAGE1
log4j.category.mypackage.myclass.log2=INFO, MESSAGE2
“FailedMessageLog”是应用appender
(信息、消息、消息1)
的java文件。 我刚刚重用了现有的
RollingFileAppender
。您可以使用任何其他appender(如fileAppender)

您应该使用正确的类名
Logger=Logger.getLogger(MyClass.Class)
应更改为
private static final Logger log=Logger.getLogger(**failedMessageLog.class**)

确保您正在使用log4j的日志ie

import **org.apache.log4j.Logger**;

Logger failedMessagelogger=Logger.getLogger(myclass.class);要在静态上下文中创建记录器,请尝试:logger log1=logger.getLogger(MyClass.class.getName()+“.log1”);
import **org.apache.log4j.Logger**;