Log4j引用输入

时间:2011-09-28 08:23:17

标签: java log4j

我想在我的log 4j属性文件中引用输入,这样当它从外部接收输入命令时,它会在列表中查找并相应地执行操作。

这就是它的样子:

log4j.appender.R.File=/home/oracle/conf/ATL_${log_file_name}/ATL_${log_file_name}.dlg

其中$ {log_file_name}是在d-switch上传递的整数

现在整数被引用到列表中:

1食品

2 - 水果

3-Vegetables

这样当$ {log_file_name}为1时,命令将变为:

log4j.appender.R.File = /家庭/ ORACLE / CONF / ATL_food / ATL_food.log

如何在属性文件中设置它?

1 个答案:

答案 0 :(得分:1)

log4j属性文件没有此功能。

但是,您可以通过编程方式将文件追加器添加到根记录器,请参阅下面的示例:

import java.io.IOException;
import org.apache.log4j.*;

public class LogTest {
    public static void main(String args[]) throws IOException {
        String category = System.getProperty("logCategory");
        Logger rootLogger = Logger.getRootLogger();
        PatternLayout layout = new PatternLayout("%d{ISO8601} [%t] %-5p %c %x - %m%n"); // replace with your layout
        String logFileName = "/home/oracle/conf/ATL_" + category + "/ATL_" + category + ".dlg";
        rootLogger.addAppender(new FileAppender(layout, logFileName, false));
    }
}

您在命令行上传递VM参数-DlogCategory=food。你可以自己做一个数字替换。