java - 如何告诉spring使用log4j2打印日志消息?

标签 java spring log4j2

当我使用Spring创建bean和其他东西时,spring正在使用他的apache commons日志记录(我猜)来打印信息。

enter image description here

我希望此信息采用不同的颜色。只有我的错误应该是红色的,但这样的信息应该是绿色的。所以我听说只有使用不同的记录器才能配置此功能,您可以在其中添加自己的配置文件,例如 log4j2。我尝试使用以下代码告诉 log4j2 记录 spring 消息,但没有成功

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <File name="MyFile" fileName="all.log" immediateFlush="false" append="false">
            <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="Console" />
            <AppenderRef ref="MyFile"/>
        </Root>
        <logger name="org.springframework.beans">
            <appender-ref ref="Console" />
        </logger>   
    </Loggers>
</Configuration>

由于输出是相同的,我猜 spring 没有使用 log4j2。你看到的第一行是我自己打印的

log.info("spring1-属性初始化");

有没有办法用log4j2完整记录日志?最后,我只是想改变这些颜色,所以也许还有一种不使用 log4j 的更简单的方法?

编辑:我正在使用 Spring boot,并且自己没有配置任何与 spring 有关的内容。

最佳答案

你可以

  1. 设置您的项目以使用 slf4j + log4j2
  2. 从 spring 依赖项和其他依赖项中排除 commons-logging
  3. 向项目添加 jcl-over-slf4j 依赖项

这将使 Spring 通过指向 slf4j、指向 log4j2 的 commons-logging 实现来工作。

关于java - 如何告诉spring使用log4j2打印日志消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35945975/

相关文章:

java - 即使没有流量也强制在 tomcat log4j2 中进行日志翻转

java - Spring - 如何注入(inject)具体的接口(interface)实现?

java - Android 应用程序在 onActivityResult 方法中崩溃

java - Android:格式化字符串并添加粗体样式

java - 使用 spring 部署到 Tomcat 的简单应用程序

Spring MVC ResponseBodyAdvice 用于在指定返回类型中添加 header

java - 在 Arraylist 中计算重复项和分组

java - Jackson ObjectMapper hibernate 问题

java - 如何在 Eclipse RCP 中使用 log4j 2.1.0 而不是 slf4j 1.7.7?获取 "ERROR StatusLogger Log4j2 could not find a logging implementation."

java - 如何将 log4j2 jul 桥与自定义控制台 appender 插件一起使用