从原理到实践彻底搞懂 Java 日志系统,再也不迷茫了!
Posted Java精选
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从原理到实践彻底搞懂 Java 日志系统,再也不迷茫了!相关的知识,希望对你有一定的参考价值。
1)JCL:一套Apache基金所述的java日志接口,由Jakarta Commons Logging,更名为Commons Logging;
2)SIF4J:一套简易的Java日志门面,全称为Simple Logging Facade for Java。
1)JUL:JDK中的日志记录工具,自Java1.4来由官方日志实现;
2)Log4j:具体的日志实现框架;
3)Log4j2:具体日志实现框架;
4)Logback:一个具体的日志实现框架。
二、日志框架的发展演变
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
log4j.rootLogger=trace, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
import org.apache.log4j.Logger;
public class Log4jTest {
public static void main(String[] args) {
Logger logger = Logger.getLogger(Log4jTest.class);
logger.info(logger.getClass().getName());
logger.info("apache日志框架log4j");
}
}
import java.util.logging.Logger;
public class JulTest {
public static void main(String[] args) {
Logger logger = Logger.getLogger(JulTest.class.getName());
//判断日志使用类型
logger.info(logger.getClass().getName());
logger.info("官方JDK日志框架Jul");
}
}
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Log4jSif4jTest {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(Log4jSif4jTest.class);
logger.info(logger.getClass().getName());
logger.info("门面框架Sif4j整合Log4j输出");
}
}
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class JCLJULTest {
public static void main(String[] args) {
Log log = LogFactory.getLog(JCLJULTest.class.getName());
log.info(log.getClass());
log.info("门面框架JCL整合JUL输出");
}
}
commons-logging.properties>系统环境变量>log4j>jul>simplelog>nooplog
org.apache.commons.logging.Log = org.apache.commons.logging.impl.Jdk14Logger
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class JCLJULTest {
public static void main(String[] args) {
Log log = LogFactory.getLog(JCLJULTest.class.getName());
log.info(log.getClass());
log.info("门面框架JCL整合JUL输出");
}
}
以上是关于从原理到实践彻底搞懂 Java 日志系统,再也不迷茫了!的主要内容,如果未能解决你的问题,请参考以下文章
图文详解一文全面彻底搞懂HBaseLevelDBRocksDB等NoSQL背后的存储原理:LSM-tree日志结构合并树...
图文详解一文全面彻底搞懂HBaseLevelDBRocksDB等NoSQL背后的存储原理:LSM-tree日志结构合并树...
图文详解一文全面彻底搞懂HBaseLevelDBRocksDB等NoSQL背后的存储原理:LSM-tree日志结构合并树...