【发布时间】:2011-10-11 19:33:59
【问题描述】:
对于每个事件,我的应用程序中有五个不同的 log4j 属性文件。我不希望应用程序使用 DOM 或 PropertyConfigurator 加载文件。但我想将所有这些属性加载到一个 Map 中,事件名称为键,属性或记录器为值。这样当我使用事件名称调用 getLogger 方法时,将返回基于事件名称的适当记录器对象。
这篇文章中的实现在一定程度上帮助了我。 log4j log file names? 他们正在根据作业动态创建记录器对象。但我想为每个事件使用静态 log4j 文件并将其加载并返回。
我还检查了这篇文章中的回复。 multiple log4j instance configuration 但由于每个事件的事件名称和附加程序列表在我的应用程序中将是一个巨大的数字,为了更好的可维护性目的,我为每个事件选择一个 log4j 文件。
期待您的帮助。 谢谢, 拉迪卡
【问题讨论】:
-
log4j 确实不是为多个配置文件设计的。我建议您使用具有多个记录器的单个配置文件,每个事件一个。这将最大限度地减少您的长期维护,因为您不必维护 log4j 的自定义版本或使用不打算成为公共 API 一部分的类和方法。
标签: log4j