SpringBoot日志slf4j和log4j原理

    技术2022-07-10  125

    文章目录

    SpringBoot日志日志介绍SLF4j使用SpringBoot日志

    SpringBoot日志

    日志介绍

    日志抽象层日志实现JCL(Jakarta Commons Logging), SLF4j(Simple Logging Facade for Java ), jboss-loggingLog4j JUL Log4j2 Logback

    使用日志时,选用日志抽象层slf4j,实现选用logback。

    SLF4j使用

    开发使用日志记录方法的调用,不应该直接调用日志的实现类,而是调用日志抽象层里的方法

    import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HelloWorld { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger(HelloWorld.class); logger.info("Hello World"); } }

    SpringBoot使用这个依赖导入日志功能,包含关系是spring-boot-starter-web导入spring-boot-starter导入spring-boot-starter-logging,我们在使用的时候只需要导入第一个依赖即可。

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> <version>2.3.0.RELEASE</version> <scope>compile</scope> </dependency>

    springboot日志实现,

    如果要引入其他框架,一定要把当前框架的默认日志依赖移除掉,例如:Spring框架使用的commons-logging。

    SpringBoot日志

    SpringBoot已经默认记录日志了

    导包语句,可能导错成commons.logging import org.slf4j.Logger; import org.slf4j.LoggerFactory; //传入本类,获取记录器 Logger logger = LoggerFactory.getLogger(getClass()); @Test void contextLoads(){ //日志级别:trace<debug<info<warn<error //可以调整日志级别,只输出高级别日志 logger.trace("跟踪日志"); logger.debug("debug日志"); logger.info("info log"); logger.warn("warn log"); logger.error("error log"); }

    日志级别:trace<debug<info<warn<error,可以调整日志级别,只输出高级别日志,SpringBoot默认级别是info级别: 在主配置文件中加入信息,就可以答应所有级别的日志

    logging.level.org.myself = trace

    配置文件中的logger设置

    #设定日志等级默认info logging.level.org.myself = trace #指定文件名 #logging.file.name = SpringBootLog.log #指定路径 logging.file.path=./log #控制台输出日志格式 logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n #文件日志格式 logging.pattern.file=%d{yyyy-MM-dd} --- [%thread] --- %-5level --- %logger{50} - %msg%n

    日志输出格式

    Processed: 0.010, SQL: 9