系列文章目录
还没写好的连接。。。
前言
日志还是比较重要的,没有日志没办法查看问题,想找个时间整理下
准备吧每个组件试试,先写个开头。。。
Java原生日志处理
Java原生的日志处理类
可以理解为Java最底层的日志处理 ,但也意味着很老,也就是不好用,一般都是使用第三方开发的日志处理组件
关于该原生日志,可以参看如下:
import java.util.logging.Logger;
/**
* jdk 自带日志类
* Java最基本的日志打印,但一般不用
*/
public class LoggerMain {
public static void main(String[] args) {
System.out.println("jdk 自带日志类,日志级别输出");
Logger logger = Logger.getGlobal();
logger.severe("service...");
logger.warning("warning...");
logger.info("info...");
logger.config("config...");
logger.fine("fine...");
}
}
执行看下效果
Connected to the target VM, address: '127.0.0.1:63046', transport: 'socket'
jdk 自带日志类,日志级别输出
五月 15, 2022 3:25:25 下午 com.junwei.LoggerMain main
严重: service...
五月 15, 2022 3:25:25 下午 com.junwei.LoggerMain main
警告: warning...
五月 15, 2022 3:25:25 下午 com.junwei.LoggerMain main
信息: info...
Disconnected from the target VM, address: '127.0.0.1:63046', transport: 'socket'
Process finished with exit code 0
并不是每个级别的日志都会被打印,每个处理都被标定了相应的级别,可以参考类:java.util.logging.Level,在上面的代码中,Level.INFO级别已下的日志不会被打印
Apache JCL
jcl 全名为 Jakarta Commons-logging
他是Apache 开源的对jdk log进行封装的log组件
他可以配合log4j,不需要强依赖他们,松耦合的状态
1.原理
- 首先去找配置文件commons-logging.properties
找不到的情况下,那么使用默认Log的实现类 - 找到是否有其他的组件库,比如log4j
- 找不到,使用jdk的原生
- 找不到,结合commons-logging自己提供这个日志实现类
2.使用
引入comment-logging库
引入jar包:
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
需要借助配置文件进行配置
commons-logging.properties文件配置
# 使用JDK1.4
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
# commons-logging自带日志实现类
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
# commons-logging自带日志实现类。它实现了Log接口。其输出日志的方法中不进行任何操作
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
# 使用Log4J
# 需要配置log4j.properties信息
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
# 使用 avalon-LogKit
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.LogKitLogger
测试代码:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* jcl
*/
public class JclMain {
public static void main(String[] args) {
Log log = LogFactory.getLog(JclMain.class);
log.info("info...");
log.warn("warn...");
}
}
配置不同,日志实现不同,打印输出格式也不同