这是一个Java问题。
我有大约100个使用slf4j记录器的静态函数。我想添加一些元数据来标准化日志-假设它是某种前同步码,它是当前正在进行的处理的函数。如何使记录器在不进入每个静态功能并将其更改为显式添加到元数据的情况下打印该元数据。
例如
static Logger logger; ...
void mainProcessing() {
String file = "current_file.txt";
int line = 3;
...
func1();
func2();
...
}
void func1() {
...
logger.warn("some warning");
}
我想在日志中看到"WARN: File current_file.txt, line 3, msg: some warning"
。
有什么想法吗?
((如果可能,最好不要明显地更改每个func1()
功能)
提前感谢。
您需要指定打印格式。但是请注意,获取行号和/或文件将大大降低您的应用程序性能。这不是C ++,Logback可能会为每行创建一个Throwable对象,以检索stacktrace并提取行号和文件名。
关于行: