我有这个写入日志消息的Log4J配置。
BasicConfigurator.configure(); // Basic configuration for Log4J 1.x
ConsoleAppender console = new ConsoleAppender(); //create appender
//configure the appender
String PATTERN = "%d [%p|%c|%C{1}] %m%n";
console.setLayout(new PatternLayout(PATTERN));
console.setThreshold(Level.FATAL);
console.activateOptions();
//add appender to any Logger (here is root)
Logger.getRootLogger().addAppender(console);
DailyRollingFileAppender fa = new DailyRollingFileAppender();
fa.setName("FileLogger");
fa.setFile("log" + File.separator + "messages.log");
fa.setDatePattern("'.'yyyy-MM-dd");
fa.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
fa.setThreshold(Level.DEBUG);
fa.setAppend(true);
fa.activateOptions();
//add appender to any Logger (here is root)
Logger.getRootLogger().addAppender(fa); //repeat with all other desired appenders
我对代码配置有误。我想每天写新的日志文件,日期作为名称。现在我只得到名称messages.log而没有日期。你能帮我解决这个问题吗?
答案 0 :(得分:3)
无需担心,您的代码很好:)
当前日志文件名为messages.log
。
仅当下一个文件启动时,此名称才会更改。
来自javadoc:
例如,如果File选项设置为/foo/bar.log并且 DatePattern设置为'。'yyyy-MM-dd,在2001-02-16午夜, 日志文件/foo/bar.log将被复制到/foo/bar.log.2001-02-16 2001-02-17的日志记录将在/foo/bar.log中继续,直到它为止 第二天翻身
答案 1 :(得分:1)
试试这个:
String PATTERN = "%d{DATE} [%p|%c|%C{1}] %m%n";
答案 2 :(得分:0)
也许你想要这个功能:https://issues.apache.org/jira/browse/LOG4J2-239(»RollingFileAppender应该支持直接记录到filePattern中引用的文件«)