sách gpt4 ai đã đi

Log4j2 - PatternLayout 依赖于 LogLevel

In lại 作者:行者123 更新时间:2023-12-05 06:42:42 26 4
mua khóa gpt4 Nike

是否可以定义两个不同的 PatternLayouts 并依赖于它使用第一个或第二个的应用程序 LogLevel?

Ví dụ:

如果我使用默认的 ERROR 级别运行我的应用程序,它应该打印如下日志语句:

$java -jar myApp.jar param1=value1

Error Message 1
Error Message 2

但是如果我使用 INFO 或 DEBUG 运行我的应用程序,它应该打印如下日志语句:

$java -jar myApp.jar --debug param1=value1

DEBUG | 18.03.2016 11:04:43,412 1058 | Debug Message 1
DEBUG | 18.03.2016 11:04:43,412 1058 | Debug Message 2
INFO | 18.03.2016 11:04:43,414 1060 | Info Message 1
ERROR | 18.03.2016 11:04:43,420 1066 | Error Message 1
ERROR | 18.03.2016 11:04:43,420 1066 | Error Message 2

在内部,如果给出参数 --debug 或 --info,我的应用程序将切换全局 LogLevel。默认为错误。

我应该如何配置我的 log4j2.xml实现这个??我找不到任何解决办法。引用我的commandLine parserutil class我在运行时切换 LogLevel 的位置。

1 Câu trả lời

在@RemkoPopma 的提示下,我做了更多研究并找到了解决方案。我的 log4j2.xml 现在看起来像:





















我还必须将以下行添加到我的 Logging Util类,我在运行时切换 LogLevel:

MainMapLookup.setMainArguments(new String[] { "pacifyLogLevel", level.toString() });

kết quả

substitutor.replace("${main:pacifyLogLevel}");

在 PatternMatch 中使用和查找。如果没有找到,他使用 defaultPattern。所以在我的应用程序中只有 ERROR Level 有不同的 LogPattern。其他的使用默认的日志模式。

有没有更好的解决方案?

关于Log4j2 - PatternLayout 依赖于 LogLevel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36081598/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com