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

日志不登录到文件中

商开宇
2023-03-14
<property file="api.properties"/>

<appender name="FILE-AUDIT"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>c:/debug.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} - %msg%n
        </Pattern>
    </encoder>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover daily -->
        <fileNamePattern>c:/archived/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>

</appender>

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
    </encoder>
</appender>

<logger name="JDBC" level="INFO" additivity="false">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE-AUDIT" />
</logger>
<logger name="RESTSecurity" level="INFO" additivity="false">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE-AUDIT" />
</logger>
<logger name="models" level="INFO" additivity="false">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE-AUDIT" />
</logger>

<!-- Strictly speaking, the level attribute is not necessary since -->
<!-- the level of the root level is set to DEBUG by default.       -->
<root level="DEBUG">
    <appender-ref ref="STDOUT" />
</root>
  <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>
private static final Logger logger = LoggerFactory.getLogger("JDBC");

private static final Logger logger = LoggerFactory.getLogger(Roles.class);

因为该类在JDBC包中。那我就这么做

 logger.info("Initializing roles");

Edit2:因为我在控制台中获得的日志消息看起来与logback.xml中的日志消息不同,所以它看起来完全忽略了我的logback.xml。

共有1个答案

竺鸿骞
2023-03-14
<prefer-application-packages>
    <package-name>org.slf4j.*</package-name>
    <package-name>ch.qos.logback.*</package-name>
</prefer-application-packages>
 类似资料:
  • 多年来,我一直在使用Tomcat、JBoss、Glassfish等。在这些容器中,我使用了Log4j、JDK日志等,非常简单。 我很难从Weblogic 12c中的应用程序中获得任何日志记录。日志被写入stderr,而不是日志文件。 在管理控制台日志记录实现:JDK严重性级别:INFO 如果我按照Log4J Weblogic配置过程配置Log4J,行为是相同的。

  • 问题内容: 我需要将对项目中的Oracle数据库的所有查询记录到日志文件中。 有什么 好的 解决方案来实现这一目标?一些示例用法将不胜感激。 我已经用jdbcdslog查看了SLF4J,但不确定如何使用它登录到文件。而且,我需要“过滤”一些日志(因为我不需要知道何时调用某种方法) 最好是,我更愿意使用,但这不是必需的。 谢谢。 更新 我找到了这篇Oracle文章,但是它并没有真正告诉您如何以编程方

  • 问题内容: 有没有一种方法可以将log4j日志事件写入到也由其他应用程序写入的日志文件中。其他应用程序可以是非Java应用程序。有什么缺点?锁定问题?格式化? 问题答案: Log4j有一个SocketAppender,它将事件发送到服务,您可以自己实现或使用与Log4j捆绑在一起的简单实现。 它还支持syslogd和Windows事件日志,这对于尝试将日志输出与非Java应用程序中的事件统一起来可

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

  • 问题内容: 我想去日记(系统化)。 到目前为止,我只发现了读取日志记录的python模块(不是我想要的)或像这样工作的模块: 问题答案: python-systemd有一个JournalHandler可与日志框架一起使用。 从文档中: