对于每个事件,我的应用程序中有五个不同的log4j属性文件。我不希望应用程序使用DOM或PropertyConfigurator加载文件。但我希望将所有这些属性加载到Map中,事件名称作为键,properties或Logger作为值。因此,当我使用事件名调用getLogger方法时,将返回基于事件名的适当记录器对象。
这篇文章中的实现在某种程度上对我有帮助。log4j log file names?它们基于作业动态创建记录器对象。但我希望为每个事件使用静态log4j文件,并加载并返回它。
我也检查了这篇文章中的回复。multiple log4j instance configuration但是由于在我的应用程序中事件名称和每个事件的附加列表将是一个巨大的数字,为了更好地维护目的,我选择为每个事件选择一个log4j文件。
希望你能帮上忙。谢谢,Radhika
发布于 2011-10-12 16:45:39
对于定义的每个事件,我都有log4j文件。传递事件名称并使用属性配置器在上下文中加载特定于事件的log4j属性文件。然后,getLogger方法将拥有该记录器。
private static synchronized Logger getEventLogger(String eventName) {
Logger logger = null;
try {
logger = m_loggers.get(eventName);
if (logger == null) {
PropertyConfigurator.configure(eventName + ".properties");
logger = Logger.getLogger(eventName);
m_loggers.put(eventName, logger);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return logger;
}https://stackoverflow.com/questions/7731476
复制相似问题