Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
求同存异
java-log
提交
0260944f
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 搜索 >>
提交
0260944f
编写于
10月 26, 2023
作者:
X
xuml
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 补充完善JCL的demo
上级
e597a6fb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
116 addition
and
0 deletion
+116
-0
java-log-jcl-demo/README.md
java-log-jcl-demo/README.md
+86
-0
java-log-jcl-demo/pom.xml
java-log-jcl-demo/pom.xml
+11
-0
java-log-jcl-demo/src/main/resources/commons-logging.properties
...og-jcl-demo/src/main/resources/commons-logging.properties
+2
-0
java-log-jcl-demo/src/main/resources/log4j.properties
java-log-jcl-demo/src/main/resources/log4j.properties
+17
-0
未找到文件。
java-log-jcl-demo/README.md
0 → 100644
浏览文件 @
0260944f
# Java Log Jcl demo
测试使用JCL输出日志
`JCL`
的配置文件为
`commons-logging.properties`
。
## 引入依赖
```
xml
<!--添加jcl 依赖-->
<dependency>
<groupId>
commons-logging
</groupId>
<artifactId>
commons-logging
</artifactId>
<version>
1.2
</version>
</dependency>
```
## Spring Boot环境下的默认处理
在Spring Boot环境中,默认引入了
`Spring-jcl`
包,在这个包中有一个
`Jcl`
的适配器
`org.apache.commons.logging.LogAdapter`
在这个适配器里会根据当前运行环境,加载默认的
`Jcl`
处理器
```
java
static
{
if
(
isPresent
(
"org.apache.logging.log4j.spi.ExtendedLogger"
))
{
if
(
isPresent
(
"org.apache.logging.slf4j.SLF4JProvider"
)
&&
isPresent
(
"org.slf4j.spi.LocationAwareLogger"
))
{
logApi
=
LogAdapter
.
LogApi
.
SLF4J_LAL
;
}
else
{
logApi
=
LogAdapter
.
LogApi
.
LOG4J
;
}
}
else
if
(
isPresent
(
"org.slf4j.spi.LocationAwareLogger"
))
{
logApi
=
LogAdapter
.
LogApi
.
SLF4J_LAL
;
}
else
if
(
isPresent
(
"org.slf4j.Logger"
))
{
logApi
=
LogAdapter
.
LogApi
.
SLF4J
;
}
else
{
logApi
=
LogAdapter
.
LogApi
.
JUL
;
}
}
```
因此默认的输出使用的
`JUL`
```
log
[2023-10-26 11:27:44.907] - 45884 信息 [main] --- com.feiyizhan.LogJclTests: 这是info日志...
[2023-10-26 11:27:44.915] - 45884 警告 [main] --- com.feiyizhan.LogJclTests: 这是warn日志...
[2023-10-26 11:27:44.920] - 45884 严重 [main] --- com.feiyizhan.LogJclTests: 这是error日志...
[2023-10-26 11:27:44.920] - 45884 信息 [main] --- com.feiyizhan.LogJclTests: private static class org.apache.commons.logging.LogAdapter$JavaUtilLog
```
## 使用`Log4j` 处理
引入依赖
```
xml
<!--引入Log4j-->
<dependency>
<groupId>
log4j
</groupId>
<artifactId>
log4j
</artifactId>
<version>
1.2.17
</version>
</dependency>
```
因为使用有自己的
`Spring-jcl`
,这个是包是处理
`JCL`
转
`SLF4J`
的,因此如果要修改为
`log4j`
,则需要排除掉这个包的依赖。
再补充
`log4j`
的配置文件
`log4j.properties`
就可以使用
`log4j`
输出日志了。
当然也可以在
`commons-logging.properties`
强制指定
`Log4j`
```
org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger
```
```
log
2023-10-26 11:38:12 DEBUG (com.feiyizhan.LogJclTests:25) - 这是debug日志...
2023-10-26 11:38:12 INFO (com.feiyizhan.LogJclTests:27) - 这是info日志...
2023-10-26 11:38:12 WARN (com.feiyizhan.LogJclTests:28) - 这是warn日志...
2023-10-26 11:38:12 ERROR (com.feiyizhan.LogJclTests:29) - 这是error日志...
2023-10-26 11:38:12 INFO (com.feiyizhan.LogJclTests:30) - public class org.apache.commons.logging.impl.Log4JLogger
```
## 同时有`Log4j`依赖时,强制使用`JUL` 处理
在
`commons-logging.properties`
中强制指定
`JUL`
```
org.apache.commons.logging.Log = org.apache.commons.logging.impl.Jdk14Logger
```
```
log
[2023-10-26 11:41:13.173] - 46792 信息 [main] --- com.feiyizhan.LogJclTests: 这是info日志...
[2023-10-26 11:41:13.175] - 46792 警告 [main] --- com.feiyizhan.LogJclTests: 这是warn日志...
[2023-10-26 11:41:13.175] - 46792 严重 [main] --- com.feiyizhan.LogJclTests: 这是error日志...
[2023-10-26 11:41:13.177] - 46792 信息 [main] --- com.feiyizhan.LogJclTests: public class org.apache.commons.logging.impl.Jdk14Logger
```
\ No newline at end of file
java-log-jcl-demo/pom.xml
浏览文件 @
0260944f
...
...
@@ -27,6 +27,10 @@
<artifactId>
spring-boot-starter-logging
</artifactId>
<groupId>
org.springframework.boot
</groupId>
</exclusion>
<exclusion>
<artifactId>
spring-jcl
</artifactId>
<groupId>
org.springframework
</groupId>
</exclusion>
</exclusions>
</dependency>
...
...
@@ -55,6 +59,13 @@
<version>
1.2
</version>
</dependency>
<!--引入Log4j-->
<dependency>
<groupId>
log4j
</groupId>
<artifactId>
log4j
</artifactId>
<version>
1.2.17
</version>
</dependency>
</dependencies>
<build>
...
...
java-log-jcl-demo/src/main/resources/commons-logging.properties
0 → 100644
浏览文件 @
0260944f
#org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger
org.apache.commons.logging.Log
=
org.apache.commons.logging.impl.Jdk14Logger
\ No newline at end of file
java-log-jcl-demo/src/main/resources/log4j.properties
0 → 100644
浏览文件 @
0260944f
log4j.rootLogger
=
DEBUG,CONSOLE
#### 控制台输出 ####
log4j.appender.CONSOLE
=
org.apache.log4j.ConsoleAppender
# 输出到控制台
log4j.appender.CONSOLE.Target
=
System.out
# 指定控制台输出日志级别
log4j.appender.CONSOLE.Threshold
=
DEBUG
# 默认值是 true, 表示是否立即输出
log4j.appender.CONSOLE.ImmediateFlush
=
true
# 设置编码方式
log4j.appender.CONSOLE.Encoding
=
UTF-8
# 日志输出布局
log4j.appender.CONSOLE.layout
=
org.apache.log4j.PatternLayout
# 如果日志输出布局为PatternLayout 自定义级别,需要使用ConversionPattern指定输出格式
log4j.appender.CONSOLE.layout.ConversionPattern
=
%d{yyyy-MM-dd HH:mm:ss} %5p (%c:%L) - %m%n
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录