SpringBoot学习(4) 配置log4j2

源码地址


1. 在Spring Boot中使用log4j2

  • SpringBoot默认使用了logback,所以要使用log4j2,要先去除spring boot的默认logging包

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
    <version>${spring.boot.starter.version}version>
    <exclusions>
        
        <exclusion>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-loggingartifactId>
        exclusion>
    exclusions>
dependency>

  • 添加spring-boot-starter-log4j2的依赖包


<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-log4j2artifactId>
    <version>${spring.boot.starter.version}version>
dependency>

  • 在application.properties中设置log4j2配置文件路径
logging.config= src/main/resources/log4j2.xml

  • 配置log4j2

2. 如何配置log4j2

2.1. 参考资料

  • log4j2 documents

2.2. log4j2配置

  • Appenders:
    • 作用:定义日志输出位置(控制台、文件或其他)、内容结构(起始就是PatternLayout)、日志等级(不完全由Appenders确定)。
    • 不能做:哪些类使用该Appender
  • Loggers:
    • 作用:定义哪些类使用那些Appender,并可以设置日志级别

2.3. 举例


<Configuration status="debug">
    <Appenders>
        <Console name="SYSOUT" target="SYSTEM_OUT">
            <PatternLayout patter="%d [%t] %-5p [%c] - %m%n  "/>
        Console>

        
        
        
        <RollingFile name="DEBUG_ROLLING_FILE"
                     fileName="/Users/irving/IdeaProjects/SpringBoot-Study/logs/logs.logs"
                     filePattern="/Users/irving/IdeaProjects/SpringBoot-Study/logs/%d{yyyy-MM-dd}-debugs.log">
            <PatternLayout>
                <Pattern>%d [%t] %-5p [%c] - %m%n  Pattern>
            PatternLayout>

            
            <Policies>
                <TimeBasedTriggeringPolicy interval="24"/>
                <SizeBasedTriggeringPolicy size="250 MB"/>
            Policies>
        RollingFile>

        
        <RollingFile name="ERROR_ROLLING_FILE"
                     fileName="/Users/irving/IdeaProjects/SpringBoot-Study/logs/error-logs.logs"
                     filePattern="/Users/irving/IdeaProjects/SpringBoot-Study/logs/%d{yyyy-MM-dd}-error.log">
            
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <Pattern>%d [%t] %-5p [%c] - %m%n  Pattern>
            PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="24"/>
                <SizeBasedTriggeringPolicy size="250 MB"/>
            Policies>
        RollingFile>
    Appenders>

    <Loggers>
        <Root level="debug">
            <AppenderRef ref="SYSOUT"/>
            <AppenderRef ref="DEBUG_ROLLING_FILE"/>
            <AppenderRef ref="ERROR_ROLLING_FILE"/>
        Root>
    Loggers>
Configuration>

你可能感兴趣的:(SpringBoot)