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

logback不会将应用程序日志语句记录到控制台或文件中

端木涵润
2023-03-14

我们使用logback进行日志记录,并且在类路径中有以下JAR

JCL-over-SLF4J-1.7.7.jar Logback-Classic-1.1.3.jar Logback-Core-1.1.3.jar SLF4J-API-1.7.7.jar Janino-2.7.8.jar

 <configuration scan="true" scanPeriod="10 seconds">
   <statusListener
      class="ch.qos.logback.core.status.OnConsoleStatusListener" />
   <contextName>myapp- ${HOSTNAME}</contextName>
   <include file="${logback.path}/logback.xml"/>
</configuration>
<included>
<property name="LOG_HOME" value="C:\\tmp" />
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>%d{yyyy-MM-dd-HH:mm:ss.SSS} cn=%contextName [%thread] %-5level %logger{36} - %msg%n</Pattern>
    </layout>
</appender>

<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_HOME}/application.%d{yyyy-MM-dd-HH-mm}_%i.zip</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>250KB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>

    <encoder>
        <pattern>%d{yyyy-MM-dd-HH:mm:ss.SSS} cn=%contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<logger name="org.springframework" level="INFO"/>
<logger name="com" level="INFO"/>

<root level="INFO">
    <appender-ref ref="stdout"/>
    <appender-ref ref="file" />
</root>

现在,当我部署我的应用程序时,我确实在application.xxx.log文件中看到了来自spring框架的日志,但是我的实际应用程序代码(记录了一些语句)并没有显示在这个日志文件中

在我的代码中,我使用slf4j记录器工厂获取记录器,然后只记录一些伪语句,如下所示

private static final Logger logger = LoggerFactory.getLogger(GameService.class);
logger.info("Playing cricket game.......");

共有1个答案

高晋
2023-03-14

我想我想出问题了。有些地方在我们的lib中,我们使用的是公共的logger util类,它正在修改logger上下文对象。我一摆脱这种依赖,事情就好起来了。由于这是一种古老的日志记录方式,我们不再需要通用的日志记录程序UTIL。

 类似资料:
  • 我正在迁移一个遗留的应用程序来使用logback,在这个过程中我试图保持所有的旧功能以相同的方式工作。遗留应用程序所做的一件事是,如果无法写入日志文件(由于空间不足、权限不正确等原因),则将日志记录到控制台 对于logback,似乎应该由StatusListener来处理这个问题,我可以使用getOrigin获得筛选后的附加程序,但我不知道如何获得与origin附加程序相关联的日志记录程序。有可能

  • 本文向大家介绍springboot使用Logback把日志输出到控制台或输出到文件,包括了springboot使用Logback把日志输出到控制台或输出到文件的使用技巧和注意事项,需要的朋友参考一下 一:日志: 1、配置日志级别 日志记录器(Logger)的行为是分等级的。如下表所示: 分为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL 默认情况下,spring boot

  • 问题内容: 当运行Spring / Hibernate应用程序时,我在控制台上看到以下不需要的输出: 我已经像这样配置了Log4j记录器: 如何使这些消息静音? 问题答案: 我相当确定您正在看到这些SQL语句,因为Hibernate配置中某处的属性“ hibernate.show_sql”设置为true。找到该设置并将其更改为false。

  • 当我尝试运行这段代码时,我在Level Object中面临一些问题。 错误:

  • 我需要禁用我的web应用程序控制台中的应用程序日志。下面的logback-spring.xml强制spring使用文件appender而不是控制台appender。然而,现在的问题是,我的应用程序日志是用来自所有包的所有日志编写的,甚至是来自那些在logback-spring.xml中没有指定的包的日志 我使用的是spring Boot1.5.2。我使用logging.file键在applicat