java - 是否可以为导入的库设置 log4j 模式布局?
问题描述
我能够使用我们的应用程序的日志输出导出的库的日志,但问题是它们使用不同的模式布局。图书馆的日志是这样的:
2020-08-07 16:54:44 INFO logs content
我们的应用程序有这样的布局:
[2020-août-07 16:54:45 PM] [WARN ] [com.foo.class] log content
我确实将配置文件的位置添加为 vm 选项,并且还添加了这些库:
log4j-api-2.11.2.jar
log4j-core-2.11.2.jar
log4j-1.2-api-2.11.2.jar
log4j2.xml
while excluding:
log4j-1.2.x.jar
遵循log4j 常见问题解答,但这还不够。
任何想法将不胜感激。
编辑:
我们使用log4j 2.11.2
,这里是依赖树的一个片段:
[INFO] +- org.springframework.boot:spring-boot-starter-log4j2:jar:2.1.4.RELEASE:compile
[INFO] | +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.11.2:compile
[INFO] | +- org.apache.logging.log4j:log4j-core:jar:2.11.2:compile
[INFO] | +- org.apache.logging.log4j:log4j-jul:jar:2.11.2:compile
[INFO] | \- org.slf4j:jul-to-slf4j:jar:1.7.26:compile
虽然该库通常使用: log4j:log4j:jar:1.2.15
,但这是排除它之前的代码段:
[INFO] | | +- log4j:log4j:jar:1.2.15:compile
排除后,我可以看到在我的依赖树中没有 log4j 1.2.15
编辑 2: 这是我的 log4j2.yaml:
Configuration:
status: WARN
name: Default
Properties:
Property:
- name: log-path
value: logs
Appenders:
Console:
PatternLayout:
pattern: '[%d{yyyy-MMM-dd HH:mm:ss a}] [%t] [%-5level] [%logger{36}] %msg%n'
name: Console
target: SYSTEM_OUT
RollingFile:
name: File
fileName: ${log-path}/lfile-name.log
filePattern: ${log-path}/file-name-%d{yyyy-MM-dd}-%i.log.gz
PatternLayout:
MarkerPatternSelector:
defaultPattern: "[%d{yyyy-MMM-dd}] [%t] [%-5level] [%logger{36}] %msg%n"
Loggers:
Root:
additivity: false
level: INFO
AppenderRef:
- ref: Console
- ref: File
logger:
- name: com.external.library
additivity: false
level: INFO
AppenderRef:
- ref: Console
- ref: File
解决方案
推荐阅读
- c# - POST 方法发送 RAW TEXT 数据并使用 Jquery AJAX Web 方法获取 HTML 响应并使用 POSTMAN 检查
- javascript - AppleScript (Javascript):删除类,如果
- html - 无法使用 :nth-child(-n+2) 选择前两个子元素
- swift - 使用闭包在两个控制器之间传递数据
- matlab - 求解复矩阵方程
- kubernetes - Ingress 是否仅适用于 Minikube?它在 Ubuntu 安装中不起作用
- excel - 如何在 VBA 的函数中调用函数?
- javascript - 强制事件传播
- ios - 重用 UITableViewCell 时如何初始化 UI 事物
- python - 使用动态规划查找所有子集和