Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
求同存异
java-log
提交
5d56d597
J
java-log
项目概览
求同存异
/
java-log
通知
6
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
java-log
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5d56d597
编写于
10月 27, 2023
作者:
X
xuml
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 完善slf4j-simple-binding-demo
上级
c55c7b57
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
45 addition
and
91 deletion
+45
-91
java-log-slf4j-simple-binding-demo/README.md
java-log-slf4j-simple-binding-demo/README.md
+43
-66
java-log-slf4j-simple-binding-demo/pom.xml
java-log-slf4j-simple-binding-demo/pom.xml
+1
-25
java-log-slf4j-simple-binding-demo/src/test/resources/logging.properties
...simple-binding-demo/src/test/resources/logging.properties
+1
-0
未找到文件。
java-log-slf4j-simple-binding-demo/README.md
浏览文件 @
5d56d597
# Java Log SLF4j simple binding demo
# Java Log SLF4j simple binding demo
测试
Jul
binding (桥接到 Slf4j )的场景
测试
slf4j simple
binding (桥接到 Slf4j )的场景
将原本的
Logback、Jul、Jcl、log4j的输出,统一到sfl4j 并最终使用 slf4j simple
输出日志
将原本的
`Logback`
、
`Log4j2`
、
`Jul`
、
`Jcl`
、
`log4j`
的输出,统一到
`Sfl4j`
并最终使用
`slf4j-simple`
输出日志
要实现这个效果就必须引入对应日志框架的
Slf4j的Over包,将日志重定向到Slf4j。但由于Slf4j
并没有一个具体的日志实现,
要实现这个效果就必须引入对应日志框架的
`Slf4j`
的Over包,将日志重定向到
`Slf4j`
。但由于
`Slf4j`
并没有一个具体的日志实现,
所以还得找一个具体的日志实现,这个demo选择的是
Jul
作为最终的日志实现。
所以还得找一个具体的日志实现,这个demo选择的是
`slf4j-simple`
作为最终的日志实现。
## 引入对应Over包
## 引入对应Over包
```
xml
```
xml
...
@@ -11,12 +11,6 @@
...
@@ -11,12 +11,6 @@
<groupId>
org.slf4j
</groupId>
<groupId>
org.slf4j
</groupId>
<artifactId>
jcl-over-slf4j
</artifactId>
<artifactId>
jcl-over-slf4j
</artifactId>
<version>
${slf4j.version}
</version>
<version>
${slf4j.version}
</version>
<exclusions>
<exclusion>
<artifactId>
slf4j-api
</artifactId>
<groupId>
org.slf4j
</groupId>
</exclusion>
</exclusions>
</dependency>
</dependency>
<!-- lo4j over slf4j -->
<!-- lo4j over slf4j -->
...
@@ -24,12 +18,6 @@
...
@@ -24,12 +18,6 @@
<groupId>
org.slf4j
</groupId>
<groupId>
org.slf4j
</groupId>
<artifactId>
log4j-over-slf4j
</artifactId>
<artifactId>
log4j-over-slf4j
</artifactId>
<version>
${slf4j.version}
</version>
<version>
${slf4j.version}
</version>
<exclusions>
<exclusion>
<artifactId>
slf4j-api
</artifactId>
<groupId>
org.slf4j
</groupId>
</exclusion>
</exclusions>
</dependency>
</dependency>
<!-- jul over slf4j -->
<!-- jul over slf4j -->
...
@@ -37,17 +25,11 @@
...
@@ -37,17 +25,11 @@
<groupId>
org.slf4j
</groupId>
<groupId>
org.slf4j
</groupId>
<artifactId>
jul-to-slf4j
</artifactId>
<artifactId>
jul-to-slf4j
</artifactId>
<version>
2.0.9
</version>
<version>
2.0.9
</version>
<exclusions>
<exclusion>
<artifactId>
slf4j-api
</artifactId>
<groupId>
org.slf4j
</groupId>
</exclusion>
</exclusions>
</dependency>
</dependency>
```
```
## `Logback` Over 处理
## `Logback` Over 处理
`Logback`
由于使用的就是
`slf4j`
的接口,无法测试出是使用
`Simple`
还是
`Logback`
,因此本次不
测试。
`Logback`
本身就支持
`slf4j`
,因此不需要Over,直接使用就可以,也不需要引入
`Logback`
的依赖包,因此
`Logback`
Over 无法
测试。
## `Jcl` Over 处理
## `Jcl` Over 处理
`Jcl`
由于Spring 自己做了一个Over的包
`spring-jcl`
,因此如果需要测试验证,还要把这个包给排除掉。
`Jcl`
由于Spring 自己做了一个Over的包
`spring-jcl`
,因此如果需要测试验证,还要把这个包给排除掉。
...
@@ -67,8 +49,7 @@
...
@@ -67,8 +49,7 @@
## `Log4j2` Over 处理
## `Log4j2` Over 处理
`log4j2`
由于有自己的门面接口,无法通过Over方法重定向到
`slf4j`
,只能通过修改代码使用。
`log4j2`
由于有自己的门面接口,无法通过Over方法重定向到
`slf4j`
,只能通过修改代码使用。
将原来的
`LogManager.getLogger(LogLog4j2Tests.class)`
修改为
`slf4j`
的
`LoggerFactory.getLogger(LogBackTests.class)`
方式来改造,
将原来的
`LogManager.getLogger(LogLog4j2Tests.class)`
修改为
`slf4j`
的
`LoggerFactory.getLogger(LogBackTests.class)`
方式来改造,
这个由于需要修改代码,修改后的无法测试出是使用了
`Logback`
的实现还是
`log4j2`
的实现,这个在另外一个demo中通过不引入
`Logback`
来测试。
但这样改造后就是直接实现了
`slf4j`
,而不是Over了。
`Log4j2`
Over 无法测试
因此在这里不测试
>注意不要使用`log4j-to-slf4j` 包,这个不是Over包,是把`slf4j`转换成`log4j2`的。
>注意不要使用`log4j-to-slf4j` 包,这个不是Over包,是把`slf4j`转换成`log4j2`的。
>不然会抛出`org.apache.logging.slf4j.SLF4JLoggerContext cannot be cast to org.apache.logging.log4j.core.LoggerContext` 异常
>不然会抛出`org.apache.logging.slf4j.SLF4JLoggerContext cannot be cast to org.apache.logging.log4j.core.LoggerContext` 异常
...
@@ -85,8 +66,6 @@ Spring Boot中 Jul 的默认配置文件 `spring-boot-2.7.9.jar!\org\springframe
...
@@ -85,8 +66,6 @@ Spring Boot中 Jul 的默认配置文件 `spring-boot-2.7.9.jar!\org\springframe
简单的方法就是在
`logging.properties`
替换
`handlers =java.util.logging.ConsoleHandler`
配置为
`handlers = org.slf4j.bridge.SLF4JBridgeHandler`
简单的方法就是在
`logging.properties`
替换
`handlers =java.util.logging.ConsoleHandler`
配置为
`handlers = org.slf4j.bridge.SLF4JBridgeHandler`
> 注意`jul-to-slf4j` 和`slf4j-jdk14` 不能同时引入,因为一个是将`Jul`重定向到`slf4j`,另一个是将`slf4j`的日志输出使用`Jul`来输出。
> 注意`jul-to-slf4j` 和`slf4j-jdk14` 不能同时引入,因为一个是将`Jul`重定向到`slf4j`,另一个是将`slf4j`的日志输出使用`Jul`来输出。
...
@@ -109,52 +88,50 @@ Spring Boot环境下,简单配置`slf4j-simple` 方式就是在`application.pr
...
@@ -109,52 +88,50 @@ Spring Boot环境下,简单配置`slf4j-simple` 方式就是在`application.pr
默认的日志输出格式相当于
`log4j`
的
`"%r [%t] %level %logger - %m%n"`
默认的日志输出格式相当于
`log4j`
的
`"%r [%t] %level %logger - %m%n"`
## 没有引入对应over依赖包的情况下的输出
## 没有引入对应over依赖包的情况下的输出
日志各自使用各自的输出。
日志各自使用各自的输出。
Spring Boot中当运行环境有
`Log4j`
时,
`Jcl`
的默认使用
`Log4j`
的实现。
```
log
```
log
2023-10-2
0 17:05:56
DEBUG (com.feiyizhan.LogJclTests:21) - LogJclTests 这是debug日志...
2023-10-2
7 09:47:35
DEBUG (com.feiyizhan.LogJclTests:21) - LogJclTests 这是debug日志...
2023-10-2
0 17:05:56
INFO (com.feiyizhan.LogJclTests:23) - LogJclTests 这是info日志...
2023-10-2
7 09:47:35
INFO (com.feiyizhan.LogJclTests:23) - LogJclTests 这是info日志...
2023-10-2
0 17:05:56
WARN (com.feiyizhan.LogJclTests:24) - LogJclTests 这是warn日志...
2023-10-2
7 09:47:35
WARN (com.feiyizhan.LogJclTests:24) - LogJclTests 这是warn日志...
2023-10-2
0 17:05:56
ERROR (com.feiyizhan.LogJclTests:25) - LogJclTests 这是error日志...
2023-10-2
7 09:47:35
ERROR (com.feiyizhan.LogJclTests:25) - LogJclTests 这是error日志...
2023-10-2
0 17:05:56
INFO (com.feiyizhan.LogJclTests:26) - LogJclTests public class org.apache.commons.logging.impl.Log4JLogger
2023-10-2
7 09:47:35
INFO (com.feiyizhan.LogJclTests:26) - LogJclTests public class org.apache.commons.logging.impl.Log4JLogger
[2023-10-2
0 17:05:56.129] - 44036
INFO [main] --- com.feiyizhan.LogJulTests: LogJulTests 这是info日志...
[2023-10-2
7 09:47:35.072] - 41064
INFO [main] --- com.feiyizhan.LogJulTests: LogJulTests 这是info日志...
[2023-10-2
0 17:05:56.132] - 44036
INFO [main] --- com.feiyizhan.LogJulTests: LogJulTests public class java.util.logging.Logger
[2023-10-2
7 09:47:35.076] - 41064
INFO [main] --- com.feiyizhan.LogJulTests: LogJulTests public class java.util.logging.Logger
2023-10-2
0 17:05:56
DEBUG (com.feiyizhan.LogLog4jTests:21) - LogLog4jTests 这是debug日志...
2023-10-2
7 09:47:35
DEBUG (com.feiyizhan.LogLog4jTests:21) - LogLog4jTests 这是debug日志...
2023-10-2
0 17:05:56
INFO (com.feiyizhan.LogLog4jTests:23) - LogLog4jTests 这是info日志...
2023-10-2
7 09:47:35
INFO (com.feiyizhan.LogLog4jTests:23) - LogLog4jTests 这是info日志...
2023-10-2
0 17:05:56
WARN (com.feiyizhan.LogLog4jTests:24) - LogLog4jTests 这是warn日志...
2023-10-2
7 09:47:35
WARN (com.feiyizhan.LogLog4jTests:24) - LogLog4jTests 这是warn日志...
2023-10-2
0 17:05:56
ERROR (com.feiyizhan.LogLog4jTests:25) - LogLog4jTests 这是error日志...
2023-10-2
7 09:47:35
ERROR (com.feiyizhan.LogLog4jTests:25) - LogLog4jTests 这是error日志...
2023-10-2
0 17:05:56
INFO (com.feiyizhan.LogLog4jTests:26) - LogLog4jTests public class org.apache.log4j.Logger
2023-10-2
7 09:47:35
INFO (com.feiyizhan.LogLog4jTests:26) - LogLog4jTests public class org.apache.log4j.Logger
2023-10-2
0 17:05:56.151
[main] DEBUG LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是debug日志...
2023-10-2
7 09:47:35.098
[main] DEBUG LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是debug日志...
2023-10-2
0 17:05:56.15
3 [main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是info日志...
2023-10-2
7 09:47:35.10
3 [main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是info日志...
2023-10-2
0 17:05:56.153
[main] WARN LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是warn日志...
2023-10-2
7 09:47:35.104
[main] WARN LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是warn日志...
2023-10-2
0 17:05:56.153
[main] ERROR LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是error日志...
2023-10-2
7 09:47:35.104
[main] ERROR LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是error日志...
2023-10-2
0 17:05:56.153
[main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是info日志...test
2023-10-2
7 09:47:35.104
[main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是info日志...test
2023-10-2
0 17:05:56.153
[main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests public class org.slf4j.simple.SimpleLogger
2023-10-2
7 09:47:35.111
[main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests public class org.slf4j.simple.SimpleLogger
```
```
## 引入对应over依赖包的情况下的输出
## 引入对应over依赖包的情况下的输出
全部统一一种日志输出格式了。
全部统一一种日志输出格式了。
```
log
```
log
2023-10-2
0 17:24:37.587
[main] DEBUG LogJclTests - LogJclTests 这是debug日志...
2023-10-2
7 09:56:12.670
[main] DEBUG LogJclTests - LogJclTests 这是debug日志...
2023-10-2
0 17:24:37.587
[main] INFO LogJclTests - LogJclTests 这是info日志...
2023-10-2
7 09:56:12.670
[main] INFO LogJclTests - LogJclTests 这是info日志...
2023-10-2
0 17:24:37.587
[main] WARN LogJclTests - LogJclTests 这是warn日志...
2023-10-2
7 09:56:12.670
[main] WARN LogJclTests - LogJclTests 这是warn日志...
2023-10-2
0 17:24:37.587
[main] ERROR LogJclTests - LogJclTests 这是error日志...
2023-10-2
7 09:56:12.670
[main] ERROR LogJclTests - LogJclTests 这是error日志...
2023-10-2
0 17:24:37.587
[main] INFO LogJclTests - LogJclTests public class org.apache.commons.logging.impl.SLF4JLog
2023-10-2
7 09:56:12.670
[main] INFO LogJclTests - LogJclTests public class org.apache.commons.logging.impl.SLF4JLog
2023-10-2
0 17:24:37.591
[main] INFO LogJulTests - LogJulTests 这是info日志...
2023-10-2
7 09:56:12.673
[main] INFO LogJulTests - LogJulTests 这是info日志...
2023-10-2
0 17:24:37.592
[main] INFO LogJulTests - LogJulTests public class java.util.logging.Logger
2023-10-2
7 09:56:12.673
[main] INFO LogJulTests - LogJulTests public class java.util.logging.Logger
2023-10-2
0 17:24:37.598
[main] DEBUG LogLog4jTests - LogLog4jTests 这是debug日志...
2023-10-2
7 09:56:12.685
[main] DEBUG LogLog4jTests - LogLog4jTests 这是debug日志...
2023-10-2
0 17:24:37.598
[main] INFO LogLog4jTests - LogLog4jTests 这是info日志...
2023-10-2
7 09:56:12.686
[main] INFO LogLog4jTests - LogLog4jTests 这是info日志...
2023-10-2
0 17:24:37.598
[main] WARN LogLog4jTests - LogLog4jTests 这是warn日志...
2023-10-2
7 09:56:12.686
[main] WARN LogLog4jTests - LogLog4jTests 这是warn日志...
2023-10-2
0 17:24:37.599
[main] ERROR LogLog4jTests - LogLog4jTests 这是error日志...
2023-10-2
7 09:56:12.686
[main] ERROR LogLog4jTests - LogLog4jTests 这是error日志...
2023-10-2
0 17:24:37.599
[main] INFO LogLog4jTests - LogLog4jTests public class org.apache.log4j.Logger
2023-10-2
7 09:56:12.686
[main] INFO LogLog4jTests - LogLog4jTests public class org.apache.log4j.Logger
2023-10-2
0 17:24:37.599
[main] DEBUG LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是debug日志...
2023-10-2
7 09:56:12.686
[main] DEBUG LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是debug日志...
2023-10-2
0 17:24:37.599
[main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是info日志...
2023-10-2
7 09:56:12.686
[main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是info日志...
2023-10-2
0 17:24:37.599
[main] WARN LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是warn日志...
2023-10-2
7 09:56:12.686
[main] WARN LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是warn日志...
2023-10-2
0 17:24:37.599
[main] ERROR LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是error日志...
2023-10-2
7 09:56:12.686
[main] ERROR LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是error日志...
2023-10-2
0 17:24:37.599
[main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是info日志...test
2023-10-2
7 09:56:12.686
[main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests 这是info日志...test
2023-10-2
0 17:24:37.600
[main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests public class org.slf4j.simple.SimpleLogger
2023-10-2
7 09:56:12.687
[main] INFO LogSlf4jSimpleTests - LogSlf4jSimpleTests public class org.slf4j.simple.SimpleLogger
```
```
java-log-slf4j-simple-binding-demo/pom.xml
浏览文件 @
5d56d597
...
@@ -73,12 +73,6 @@
...
@@ -73,12 +73,6 @@
<groupId>
org.slf4j
</groupId>
<groupId>
org.slf4j
</groupId>
<artifactId>
slf4j-simple
</artifactId>
<artifactId>
slf4j-simple
</artifactId>
<version>
${slf4j.version}
</version>
<version>
${slf4j.version}
</version>
<exclusions>
<exclusion>
<artifactId>
slf4j-api
</artifactId>
<groupId>
org.slf4j
</groupId>
</exclusion>
</exclusions>
</dependency>
</dependency>
<!-- jcl over slf4j -->
<!-- jcl over slf4j -->
...
@@ -86,12 +80,6 @@
...
@@ -86,12 +80,6 @@
<groupId>
org.slf4j
</groupId>
<groupId>
org.slf4j
</groupId>
<artifactId>
jcl-over-slf4j
</artifactId>
<artifactId>
jcl-over-slf4j
</artifactId>
<version>
${slf4j.version}
</version>
<version>
${slf4j.version}
</version>
<exclusions>
<exclusion>
<artifactId>
slf4j-api
</artifactId>
<groupId>
org.slf4j
</groupId>
</exclusion>
</exclusions>
</dependency>
</dependency>
<!-- lo4j over slf4j -->
<!-- lo4j over slf4j -->
...
@@ -99,25 +87,13 @@
...
@@ -99,25 +87,13 @@
<groupId>
org.slf4j
</groupId>
<groupId>
org.slf4j
</groupId>
<artifactId>
log4j-over-slf4j
</artifactId>
<artifactId>
log4j-over-slf4j
</artifactId>
<version>
${slf4j.version}
</version>
<version>
${slf4j.version}
</version>
<exclusions>
<exclusion>
<artifactId>
slf4j-api
</artifactId>
<groupId>
org.slf4j
</groupId>
</exclusion>
</exclusions>
</dependency>
</dependency>
<!-- jul over slf4j -->
<!-- jul over slf4j -->
<dependency>
<dependency>
<groupId>
org.slf4j
</groupId>
<groupId>
org.slf4j
</groupId>
<artifactId>
jul-to-slf4j
</artifactId>
<artifactId>
jul-to-slf4j
</artifactId>
<version>
2.0.9
</version>
<version>
${slf4j.version}
</version>
<exclusions>
<exclusion>
<artifactId>
slf4j-api
</artifactId>
<groupId>
org.slf4j
</groupId>
</exclusion>
</exclusions>
</dependency>
</dependency>
...
...
java-log-slf4j-simple-binding-demo/src/test/resources/logging.properties
浏览文件 @
5d56d597
#handlers =java.util.logging.ConsoleHandler
handlers
=
org.slf4j.bridge.SLF4JBridgeHandler
handlers
=
org.slf4j.bridge.SLF4JBridgeHandler
.level
=
INFO
.level
=
INFO
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录