到现在为止,我已经使用的方法与log4j的是这样的:log4j-使用特定的记录,但显示的类名
void writeMethod(String msg){
StackTraceElement[] st = Thread.currentThread().getStackTrace();
Logger log=Logger.getLogger(st[2]);
log.info(msg);
}
这与属性一起,让我在日志文件中显示类/方法调用写入方法,它工作正常,只要我只需要每个应用程序运行一个日志文件。现在每个应用程序有更多的线程,每个应用程序需要多于1个日志文件(数量可以是几乎无限的)。 因为我希望有超过1个日志文件,所以我会在应用程序启动时自动创建log4j.properties文件,然后为应用程序的每个线程使用特定的appender。
所以appender被命名为l0, l1, l2 ....
,并且每个都写入不同的日志文件。
这意味着,我现在用的是这样的:
void writeMethod(int threadNr ,String msg){
Logger log=Logger.getLogger("l"+threadNr);
log.info(msg);
}
我的问题是:我可以用这第二种方法,也有能够写的方法/类,它被称为以前的功能记录方法?
这样做的具体原因是什么? Log4j可以配置为输出类,方法和线程名称。 – TedTrippin 2012-07-19 13:52:47
你能提供这样一个例子吗?因为当我告诉它输出类时,第二个版本只写l0,l1。 – CosminO 2012-07-19 13:54:12
我的回答下面回答你的问题吗? – TedTrippin 2012-07-19 15:40:29