我想知道如何将以下代码转换为将这些行输出到文本文件,而不是标准输出:
import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator;
public class HelloWorld {
static final Logger logger = Logger.getLogger(HelloWorld.class);
public static void main(String[] args) {
PropertyConfigurator.configure("log4j.properties");
logger.debug("Sample debug message");
logger.info("Sample info message");
logger.warn("Sample warn message");
logger.error("Sample error message");
logger.fatal("Sample fatal message");
}
}
属性文件是:
log4j.rootLogger=DEBUG, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%m%n
谢谢。
最佳答案
将 ConsoleAppender 更改为 FileAppender。
我找到了 org.apache.log4j.RollingFileAppender
有用。
如果你用这个,
您必须为文件名添加一个属性,并且
可能还想设置 maxFileSize。
这是一个示例(将这些放在 log4j.properties 文件中):
log4j.appender.NotConsole=org.apache.log4j.RollingFileAppender
log4j.appender.NotConsole.fileName=/some/path/to/a/fileName.log
log4j.appender.NotConsole.maxFileSize=20MB
还有其他附加程序。
DailyRollingFileAppender
基于时间滚动。
FileAppender
不滚动。
如果你使用 RollingFileAppender
,
您需要猜测 maxFileSize 和
如果它引起问题,则在将来的日期解决大小问题。
关于java - 如何使用 to log4j 写入文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4474646/