Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用log4j2进行Spring引导日志记录?_Java_Spring_Log4j_Spring Boot_Log4j2 - Fatal编程技术网

Java 使用log4j2进行Spring引导日志记录?

Java 使用log4j2进行Spring引导日志记录?,java,spring,log4j,spring-boot,log4j2,Java,Spring,Log4j,Spring Boot,Log4j2,我使用的是springbootstarter,我想将log4j2.xml配置为将异步+不同的内容记录到不同的日志文件中 我创建了log4j2文件,但是Spring仍然使用Spring引导默认日志记录。如何切换日志记录?尝试以下操作: 排除弹簧启动启动器日志记录,例如 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta

我使用的是
springbootstarter
,我想将
log4j2.xml
配置为将异步+不同的内容记录到不同的日志文件中

我创建了log4j2文件,但是
Spring
仍然使用Spring引导默认日志记录。如何切换日志记录?

尝试以下操作:

  • 排除弹簧启动启动器日志记录,例如

    <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>
    
    
    org.springframework.boot
    弹簧靴起动器
    org.springframework.boot
    spring启动程序日志记录
    
  • 为日志记录界面添加依赖项,例如slf4j

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0.2</version>
    </dependency>
    
    
    org.apache.logging.log4j
    log4j-slf4j-impl
    2.0.2
    
  • 添加指向所选日志接口的其他日志实现,例如

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
    </dependency>
    
    
    org.slf4j
    jcl-over-slf4j
    org.slf4j
    七月至六月
    org.slf4j
    log4j-over-slf4j
    
  • 添加您的目标日志记录实现,例如

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.0.2</version>
    </dependency>
    
    
    org.apache.logging.log4j
    log4japi
    2.0.2
    org.apache.logging.log4j
    log4j型芯
    2.0.2
    
  • 它应该会起作用。

    我有一个更好的方法:

  • 排除日志记录器:

    <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>
    
    
    org.springframework.boot
    


    享受吧

    这就是我的工作。有两个额外的例外。否则,应用程序未拾取log4j,因此发生冲突

    实际绑定的类型为[ch.qos.logback.classic.util.ContextSelectorStaticBinder]

    
    org.mybatis.spring.boot
    迈巴蒂斯弹簧靴起动器
    1.0.0
    org.springframework.boot
    spring启动程序日志记录
    回归经典
    回写
    log4j-over-slf4j
    org.slf4j
    org.springframework.boot
    spring-boot-starter-log4j2
    
    如今,自spring-boot-1.2.0.0发布以来,也有
    spring-boot-starter-log4j2
    。仅供参考。这对我也不适用:所有日志都打印到控制台。我想你的意思是:“1.排除logback framework”而不是“排除slf4j logger”,对吗?如果使用log4j2,请确保使用spring-boot-starter-log4j2,由于spring-boot-starter-log4j是有效的,但对我来说不适用于log4j2,所以我必须使用Gradle为我添加这两个logback classic ch.qos.logback log4j-over-slf4j org.slf4j,我只是这样做:
    configurations.all*.exclude group:“org.springframework.boot”,模块:“springbootstarter日志记录”
    ,然后在我的依赖项{}部分,我添加了
    运行时“org.springframework.boot:spring-boot-starter-log4j2”
    对我来说,它不起作用:所有日志都打印到控制台。
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.0.0</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
            <exclusion>
                <artifactId>logback-classic</artifactId>
                <groupId>ch.qos.logback</groupId>
            </exclusion>
            <exclusion>
                <artifactId>log4j-over-slf4j</artifactId>
                <groupId>org.slf4j</groupId>
            </exclusion>            
        </exclusions>           
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>