【发布时间】:2016-04-28 18:04:36
【问题描述】:
我有一个 java 应用程序,它有 'hypoteticly 说' 3 个对象... Animal 类的 1 个,Food 类的 1 个,它们与任何继承或接口无关..以及 class Manager 的最后一个 strong> 有一份动物清单和食物清单,经理负责那些动物和食物所在的动物园。
重点...
我正在使用 log4j,我需要仅在且仅当动物列表中的某些内容发生更改时才登录到 txt 文件...(动物死亡、出生或其他任何情况...)和我需要在且仅当食物列表中的某些内容发生变化时登录 System.out...(需要新的食物,吃过的食物,等等...)
我的问题:
如何使用 log4j 做到这一点?
我在这里找到: Log4j : Creating/Modifying appenders at runtime, log file recreated and not appended
类似于动态更改附加程序
String targetLog="where ever you want your log"
FileAppender apndr = new FileAppender(new PatternLayout("%d %-5p [%c{1}] %m%n"),targetLog,true);
logger.addAppender(apndr);
logger.setLevel((Level) Level.ALL);
但我认为这非常难看并且容易出错,在整个洞应用程序中不断添加和删除附加程序..
有没有更好的方法来处理这个问题 我可以有 2 个记录器(一个用于动物 1 个用于食物)吗?
有什么建议吗??
谢谢
【问题讨论】: