实际背景
客户有客户端多台,每个客户端有自己的唯一编号。输出的日志要根据每个客户端的编号生成,例如10001_demo.log,10002_demo.log
方法
1.网上给出的第一种方法是:
在log4j的配置文件中log4j.appender.file.File=${log.dir}/${log.file}中,使用${}形式定义变量,在后台使用
System.setProperty("log.dir","/home/..."),来设置变量值。但我测试了多次,这样是不起作用的,可能是我自己配置的问题。
2.第二种方法,亲测可用:
1 Logger log = Logger.getLogger(ZhzhcxCtl.class);//获取log对象
2 FileAppender fileAppender = (FileAppender) Logger.getRootLogger().getAppender("file");//获取FileAppender对象
3 fileAppender.setFile("/home/log/gcds.log");//重新设置输出日志的路径和文件名
4 fileAppender.activateOptions();//使设置的FileAppender起作用
5 log.info("index.........");