Log4j和Log4j2的区别(SpringBoot中配置使用)

来源:互联网 发布:桌面公告通知软件 编辑:程序博客网 时间:2024/05/21 07:03

官方文档:http://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html

前言:

日志的级别:

默认的几个级别:trace<debug<info<warn<error<fatal

说明:

   1.级别之间是包含关系,意思是如果你设置日志级别是trace,则大于等于这个级别的日志都会输出。

   2.trace:追踪,就是程序推进一下,你就可以写个trace输出,所以trace应该特别多,不过没关系,我们可以设置最低日志级别不让他输出。

   3.debug:调试,一般设置这个为最低级别。

   4.info:输出你感兴趣或者重要的信息,最经常使用。

   5.warn:youxie信息不是错误信息但是也要给出提示。

   6.error:错误信息。

   7.fatal:重大错误。


正文:

一、配置文件类型(IntelliJ IDEA的SpringBoot的main/resources/下)

log4j是通过一个log4j.properties的文件作为主配置文件的,而现在的log4j2则已弃用,采用的是log4j2.xml或log4j2.yml或者log4j2.json

均在main/resources/下

log4j.properties

#log4j.rootLogger=CONSOLE,info,error,DEBUGlog4j.rootLogger=info,error,CONSOLE,DEBUGlog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender     log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout     log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n     log4j.logger.info=infolog4j.appender.info=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.info.layout=org.apache.log4j.PatternLayout     log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  log4j.appender.info.datePattern='.'yyyy-MM-ddlog4j.appender.info.Threshold = info   log4j.appender.info.append=true   #log4j.appender.info.File=/home/admin/pms-api-services/logs/info/api_services_infolog4j.appender.info.File=/Users/dddd/Documents/testspace/pms-api-services/logs/info/api_services_infolog4j.logger.error=error  log4j.appender.error=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.error.layout=org.apache.log4j.PatternLayout     log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  log4j.appender.error.datePattern='.'yyyy-MM-ddlog4j.appender.error.Threshold = error   log4j.appender.error.append=true   #log4j.appender.error.File=/home/admin/pms-api-services/logs/error/api_services_errorlog4j.appender.error.File=/Users/dddd/Documents/testspace/pms-api-services/logs/error/api_services_errorlog4j.logger.DEBUG=DEBUGlog4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout     log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  log4j.appender.DEBUG.datePattern='.'yyyy-MM-ddlog4j.appender.DEBUG.Threshold = DEBUG   log4j.appender.DEBUG.append=true   #log4j.appender.DEBUG.File=/home/admin/pms-api-services/logs/debug/api_services_debuglog4j.appender.DEBUG.File=/Users/dddd/Documents/testspace/pms-api-services/logs/debug/api_services_debug


log4j2.yml

Configuration:  status: warn  Properties: # 定义变量    Property:      - name: log.path        value: d:\\tmp\\logs      - name: project.name        value: spring-boot-log  Appenders:    Console:  #输出到控制台      name: CONSOLE      target: SYSTEM_OUT      ThresholdFilter:        level: trace        onMatch: ACCEPT        onMismatch: DENY      PatternLayout:        pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n"    # 输出到文件,超过128MB归档    RollingFile:      - name: ROLLING_FILE        ignoreExceptions: false        fileName: ${log.path}/${project.name}.log        filePattern: "${log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"        PatternLayout:          pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n"        Policies:          SizeBasedTriggeringPolicy:            size: "128 MB"        DefaultRolloverStrategy:          max: 1000  Loggers:    Root:      level: info      AppenderRef:        - ref: CONSOLE        - ref: ROLLING_FILE    Logger: # 为com.xjj包配置特殊的Log级别,方便调试      - name: com.test.dao        additivity: false        level: debug        AppenderRef:          - ref: CONSOLE          - ref: ROLLING_FILE



二、核心jar包
log4j在springboot中默认集成

log4j2需要在pom.xml中添加以下依赖

  <!--去除exclude默认logging依赖-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter</artifactId>            <exclusions>                <exclusion>                    <groupId>org.springframework.boot</groupId>                    <artifactId>spring-boot-starter-logging</artifactId>                </exclusion>            </exclusions>        </dependency>        <!--添加log4j2依赖-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-log4j2</artifactId>        </dependency>        <!--添加能够使用log4j2.yml配置的依赖-->        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-databind</artifactId>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.dataformat</groupId>            <artifactId>jackson-dataformat-yaml</artifactId>        </dependency>


三、调用

log4j

import org.apache.log4j.Logger;private static Logger log = Logger.getLogger(Hello.class);log.info("test log4j");

log4j2

import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;private static Logger logger = LogManager.getLogger(HelloController.class);logger.info("test log4j2");



原创粉丝点击