当前位置: 首页 > 知识库问答 >
问题:

Spring引导停止log4j日志记录

禄仲渊
2023-03-14

我想用SpringBoot1.5配置log4j。10.释放。我排除了springbootstarter日志记录,并添加了log4j依赖项。在spring启动之前,我有所有日志,但在spring启动之后,init日志停止。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
        <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.0</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.12.1</version>
</dependency>

控制台日志:

...
2019-10-25 11:57:16,130 main DEBUG Registering MBean org.apache.logging.log4j2:type=18b4aac2,component=Appenders,name=LogToConsole
2019-10-25 11:57:16,130 main DEBUG Registering MBean org.apache.logging.log4j2:type=18b4aac2,component=Appenders,name=LogToFile

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::       (v1.5.10.RELEASE)

paź 25, 2019 11:57:18 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Tomcat]
paź 25, 2019 11:57:18 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.5.27

和log4j2。xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <Console name="LogToConsole" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <File name="LogToFile" fileName="logs/app.log">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
        </File>
    </Appenders>
    <Loggers>
        <Logger name="src.main.java" level="debug" additivity="false">
            <AppenderRef ref="LogToFile"/>
            <AppenderRef ref="LogToConsole"/>
        </Logger>
        <Logger name="org.springframework.boot" level="error" additivity="false">
            <AppenderRef ref="LogToConsole"/>
        </Logger>
        <Root level="error">
            <AppenderRef ref="LogToFile"/>
            <AppenderRef ref="LogToConsole"/>
        </Root>
    </Loggers>
</Configuration>

你知道我做错了什么吗?

共有1个答案

冯宏放
2023-03-14

您正在使用

<Logger name="src.main.java" level="debug" additivity="false"> .  == I simply replaced it with my package name present inside src/main/java and its now working.

在我的情况下,更改如下:-

<Loggers>
    <Logger name="com.example.demo.test" level="debug" additivity="false">
        <AppenderRef ref="fileLogger"/>
        <AppenderRef ref="console"/>
    </Logger>

    <Root level="info">
        <AppenderRef ref="fileLogger"/>
        <AppenderRef ref="console"/>
    </Root>
</Loggers>
 类似资料:
  • 我一直在尝试关闭石英的恼人的调试日志记录。我使用log4j作为日志框架,我已经尝试将这一行添加到lg4j属性文件中 我仍然收到大量的调试日志消息 如何关闭此功能? 编辑。我已经将我的配置移动到xml文件...但仍然遇到同样烦人的问题 编辑2。。。这是我的pom。xml文件(有趣的部分) 类路径中的EDIT3 jar

  • 我已经在spring boot Application.properties中配置了日志路径属性。 在application.properties中的此属性中。它使用日志文件名,并在tomcat日志文件目录中创建一个新的日志文件。我检查了我的系统属性,它设置了LOG_FILE和LOG_PATH属性。我使用了1.3.6版本的spring Boot。任何与此相关的已知问题。我读过一期,似乎很久以前就修

  • 需要帮助...我在这里做错了什么???我相信它确实从应用程序属性文件中读取路径和文件名。但我不认为它读取了logback.xml或logback-spring.xml 我做了一些研究,发现了许多问题/答案。但是我想每个人都说要把logback xml放在资源中,把路径和文件名放在application.properties.我知道这很简单,但是在某个地方遗漏了一些东西… 提前谢谢!! 应用程序属性

  • 编写了简单的POC来证明和测试Spring Boot和log4j2的兼容性。一旦成功,我将把它移动到真正的应用程序。 请参考下面的maven依赖关系(来自POC): 如果我不排除Spring的logback,也不添加boot-starter-log4j2,那么应用程序日志会打印到应用程序文件中,但Spring日志根本不会打印。我感觉到了依赖的问题。感谢任何帮助。

  • 主要内容:Logger日志方法的例子,Logger的日志方法Logger 类有多种方法来处理日志记录活动。Logger 类不允许我们实例化一个新的 Logger 实例,但它支持两种获取 Logger 对象的静态方法: 两个方法中的第一个返回应用程序实例的根记录器,它没有名称。 任何其他命名的 Logger 对象实例都是通过传递记录器的名称由第二种方法获得的。记录器的名称可以是您传递的任何字符串,通常是类或包名称,如下所述: Logger日志方法的例子 Lo

  • 当前的日志阈值是关于日志级别(TRACE,DEBUG,INFO,WARN,ERROR和FATAL)对我来说是不够的。我有一个千兆字节的日志从第三方库写入紧急情况下的错误类别。我不想打开这个日志,因为我想看到这个问题日志。大多数日志都是连续重复的堆栈跟踪。所以我想要一种可以 1)跳过日志,如果阈值(kb/sec)是真实的(我的意思是当我们写很多日志-我们可能会跳过一些)或 2)如果在一段时间内打印了