Java 将Spring与Log4j2集成

Java 将Spring与Log4j2集成,java,spring,maven,spring-mvc,log4j2,Java,Spring,Maven,Spring Mvc,Log4j2,我希望Spring使用Log4j2进行日志记录,因为有时我希望获得调试级别。我已经读了很多相关的话题和例子,但是没有一件事是有效的。。我设法从自己的类配置了log4j2和log,但没有从spring配置。 我得到的: Maven依赖项: <dependencies> <!-- SERVLT API --> <dependency> <groupId>javax.servlet</groupId>

我希望Spring使用Log4j2进行日志记录,因为有时我希望获得调试级别。我已经读了很多相关的话题和例子,但是没有一件事是有效的。。我设法从自己的类配置了log4j2和log,但没有从spring配置。 我得到的:
Maven依赖项:

    <dependencies>
    <!-- SERVLT API -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>

    <!-- APACHE TILES -->
    <dependency>
        <groupId>org.apache.tiles</groupId>
        <artifactId>tiles-extras</artifactId>
        <version>3.0.5</version>
    </dependency>

    <!-- APACHE FILEUPLOAD -->
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.1</version>
    </dependency>

    <!-- Spring and Transactions -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring-framework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring-framework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring-framework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring-framework.version}</version>
    </dependency>

    <!-- Spring ORM support -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring-framework.version}</version>
    </dependency>

    <!-- SPRING SECURITY -->
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>${spring-framework.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring-framework.version}</version>
    </dependency>

    <!-- LOGGING -->

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>${logger.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>${logger.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-1.2-api</artifactId>
        <version>${logger.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>${logger.version}</version>
    </dependency>


    <!-- Hibernate -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>${hibernate.version}</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hibernate.version}</version>
    </dependency>

    <!-- POSTGRE DRIVER -->
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.4.1207.jre7</version>
    </dependency>
    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
    </dependency>

    <!-- JACKSON -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.7.0</version>
    </dependency>

</dependencies>

javax.servlet
javax.servlet-api
3.0.1
假如
朱尼特
朱尼特
3.8.1
测试
org.apache.tiles
附加瓷砖
3.0.5
文件上传
文件上传
1.3.1
org.springframework
spring上下文
${spring framework.version}
org.springframework
德克萨斯州春季
${spring framework.version}
org.springframework
弹簧网
${spring framework.version}
org.springframework
SpringWebMVC
${spring framework.version}
org.springframework
春季甲虫
${spring framework.version}
org.springframework.security
spring安全网
${spring framework.version}
org.springframework.security
spring安全配置
${spring framework.version}
org.apache.logging.log4j
log4j型芯
${logger.version}
org.apache.logging.log4j
log4japi
${logger.version}
org.apache.logging.log4j
log4j-1.2-api
${logger.version}
org.apache.logging.log4j
log4j-slf4j-impl
${logger.version}
org.hibernate
休眠实体管理器
${hibernate.version}
org.hibernate
冬眠核心
${hibernate.version}
org.postgresql
postgresql
9.4.1207.jre7
公共dbcp
公共dbcp
1.4
com.fasterxml.jackson.core
杰克逊数据绑定
2.7.0
log4j.xml:(编辑:文件名为log4j2.xml-抱歉出错)


如果有什么相关的事情我没有告诉-告诉我

我将非常感谢你帮我解决这个问题


<!-- Log4j Configuration -->
<bean id="log4jInitializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="staticMethod">
        <value>org.springframework.util.Log4jConfigurer.initLogging</value>
    </property>
    <property name="arguments">
        <list>
            <value>${path.to.log4j.file}</value>
        </list>
    </property>
</bean>
org.springframework.util.log4jconfig.initLogging ${path.to.log4j.file}
将其添加到spring上下文文件中


org.springframework.util.log4jconfig.initLogging
${path.to.log4j.file}

将此添加到spring上下文文件中

我相信spring使用commons日志记录,因此您需要commons日志记录jar和log4j jcl jar。

我相信spring使用commons日志记录,因此您需要commons日志记录jar和log4j jcl jar。

如果有人正在使用spring 5并来到本文,请注意,如(或更简要地在中解释):

  • 不再需要像JCL-over-SLF4J这样的外部网桥,相应地,也不需要手动将标准Commons日志jar从spring核心依赖项中排除
  • 只需将log4j2.x或SLF4J放在类路径上,不需要任何额外的桥接jar,或者依赖于通过JUL的默认日志记录(具有可定制的JUL设置)
也就是说,对于
log4j2
,将其依赖项添加到
pom.xml
中,如下所示:


org.apache.logging.log4j
:

import org.apache.logging.log4j.LogManager;
导入org.apache.logging.log4j.Logger;
公共类HelloWorld{
私有静态最终记录器Logger=LogManager.getLogger(“HelloWorld”);
公共静态void main(字符串[]args){
logger.info(“你好,世界!”);
}
}
/src/main/resources中的配置文件
您需要一个
log4j2
配置文件,可以是
xml
json
yaml
格式


中的详细信息和示例如果有人正在使用Spring 5并来到本文,请注意,如中所述(或在中更简要地解释):

  • 不再需要像JCL-over-SLF4J这样的外部网桥,相应地,也不需要手动将标准Commons日志jar从spring核心依赖项中排除
  • 只需将log4j2.x或SLF4J放在类路径上,不需要任何额外的桥接jar,或者依赖于通过JUL的默认日志记录(具有可定制的JUL设置)
也就是说,对于
log4j2
,将其依赖项添加到
pom.xml
中,如下所示:


org.apache.logging.log4j
:

import org.apache.logging.log4j.LogManager;
导入org.apache.logging.log4j.Logger;
公共类HelloWorld{
私有静态最终记录器Logger=LogManager.getLogger(“HelloWorld”);
公共静态void main(字符串[]args){
logger.info(“你好,世界!”);
}
}
/src/main/resources中的配置文件
您需要一个
log4j2
配置文件,可以是
xml
json
yaml
格式


详细信息和示例在

中,我在pom.xml文件中看不到任何log4j2依赖项。1.我认为log4j2 2的配置文件是log4j2.xml 2。您不需要使用log4j2来获得调试级别。几乎任何SLF4j绑定都可以it@AshraffAliWahab
org.apache.logging.log4j:log4j-*
实际上是log4j2@Adrian嗯,你说得对我在帖子中犯了一个错误。该文件是log4j2.xml,我知道它是正确的。你能链接到一些配置SLF4j的示例吗?我不是真正的log4j2,所以我对其他日志框架持开放态度。
<!-- Log4j Configuration -->
<bean id="log4jInitializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="staticMethod">
        <value>org.springframework.util.Log4jConfigurer.initLogging</value>
    </property>
    <property name="arguments">
        <list>
            <value>${path.to.log4j.file}</value>
        </list>
    </property>
</bean>