在运行时设置log4j日志文件

问题描述 投票:0回答:1

我正在使用slf4j的Java程序上工作。目前,该程序包含以下几行:

 class MyOwn{
    Logger logger; //org.slf4j.*;
    static {
    PropertyConfigurator.configure("somePathTo/log4j.properties");//log4j
    logger = LoggerFactory.getLogger(MyOwn.class);
}

     ... // rest of my code is here
 }

我的问题是:我需要做哪些修改,以便可以在运行时指定logFile的名称。

背景:基本上,在程序运行时,应该顺序执行x个作业。对于每个作业,我想要一个不同的文件名。

log4j.properties文件不是xml;它是文本,我必须保持这种方式。我找到了此链接(http://cognitivecache.blogspot.com/2008/08/log4j-writing-to-dynamic-log-file-for.html),但不确定如何使用那里的信息。

编辑

下面是我当前的log4j.properties文件。我希望能够将文件目录设置在log4j.properties文件中(即/opt/stuff/var/log/jmy/proj/),而只需将myown.log替换为动态文件名。我该怎么做?同样,我想保留log4j.properties。

 log4j.appender.CONSOLE=org.apache.     log4j.ConsoleAppender
 log4j.appender.CONSOLE.layout=org.apache.     log4j.PatternLayout
 log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %c{1} - %m%n

 log4j.rootLogger=INFO, CONSOLE

 log4j.appender.MY_OWN_ERR_LOG=org.apache.     log4j.RollingFileAppender
 log4j.appender.MY_OWN_ERR_LOG.File=/opt/stuff/var/log/jmy/proj/myown.error.log
 log4j.appender.MY_OWN_ERR_LOG.MaxFileSize=4MB
 log4j.appender.MY_OWN_ERR_LOG.MaxBackupIndex=3
 log4j.appender.MY_OWN_ERR_LOG.layout=org.apache.     log4j.PatternLayout
 log4j.appender.MY_OWN_ERR_LOG.layout.ConversionPattern=%d %-5p %c{1} - %m%n
 log4j.appender.MY_OWN_ERR_LOG.Threshold = WARN

 log4j.appender.MY_OWN_LOG=org.apache.     log4j.RollingFileAppender
 log4j.appender.MY_OWN_LOG.File=/opt/stuff/var/log/jmy/proj/myown.log
 log4j.appender.MY_OWN_LOG.MaxFileSize=8MB
 log4j.appender.MY_OWN_LOG.MaxBackupIndex=3
 log4j.appender.MY_OWN_LOG.layout=org.apache.     log4j.PatternLayout
 log4j.appender.MY_OWN_LOG.layout.ConversionPattern=%d %-5p %c{1} - %m%n

 log4j.logger.my.own.things=DEBUG, MY_OWN_LOG, MY_OWN_ERR_LOG
java dynamic log4j filenames slf4j
1个回答
0
投票

查看此帖子Programmatically creating different log files using log4j

您可以指定可以以编程方式放入log4j.properties文件的任何内容。您只需创建appender和logger对象并将它们链接在一起。

也可以在这里查看更完整的示例:http://configlog4jbyprogram.blogspot.co.uk/

© www.soinside.com 2019 - 2024. All rights reserved.