【发布时间】:2014-12-23 09:13:39
【问题描述】:
背景:
我的应用程序允许从 GUI 中选择两种操作模式。
如果它作为服务器运行,我想将日志定向到server.log 文件。
如果它作为客户端运行,我想将日志定向到 client.log 文件中。
问题:
如何在 log4j 中为 RollingFileAppender 的不同模式编程指定不同的名称?
已添加(10-29-2014):@Manish Maheshwari 目前的回答对我不起作用。它会引发警告 log4j:WARN File option not set for appender [file] 并且不会将日志写入文件。
我的尝试:
我定义了 RoleSpecificRollingFileAppender 类,它扩展了 RollingFileAppender 并覆盖了 setFile() 方法。
public class RoleSpecificRollingFileAppender extends RollingFileAppender {
@Override
public void setFile(String fileName) {
super.setFile(fileName);
}
}
我的RollingFileAppender如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration>
# Root logger option
log4j.rootLogger=INFO, file
# Direct log messages to a log file
log4j.appender.file=[[What to do here? org.apache.log4j.RollingFileAppender]]
log4j.appender.file.File = [[I don't know how to do here.]]
log4j.appender.file.MaxFileSize=50MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm} %-5p %c{1}:%L - %m%n
</log4j:configuration>
但是我不知道在 Java 代码和 log4j.properties 文件中做什么。
【问题讨论】:
标签: java logging log4j rollingfileappender