java - Logback,根本没有日志文件(RollingFileAppender 和 SizeBasedTriggeringPolicy

标签 java maven tomcat logging logback

logback 有问题。我尝试记录我的操作,想将所有日志写入文件,但在我的应用程序启动后根本没有日志

logback.xml

<configuration>
    <appender name="FILE-LOGGER" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>log/application.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <fileNamePattern>log/application-%d{yyyy-MM-dd}.log%i</fileNamePattern>
            <maxFileSize>5MB</maxFileSize>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <logger name="com.test.application" level="info">
        <appender-ref ref="FILE-LOGGER"/>
    </logger>
    <root level="debug">
        <appender-ref ref="FILE-LOGGER"/>
    </root>
</configuration>

服务.java

 static final Logger LOG = LoggerFactory.getLogger(TestClass.class);
public List<Items> getAll(){
    LOG.info("hi, info!!!!!");
    LOG.error("hi, error!!!!!");
}

pom.xml

<dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
            <scope>test</scope>
        </dependency>
    <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j-version}</version>
            </dependency>

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${slf4j-version}</version>
            </dependency>

期望日志会在日志文件中

最佳答案

无意中发现了一个问题 我从 logback.xml 中删除文件并开始在控制台中接收日志并找到下一个有趣的行:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:org/slf4j/slf4j-simple/1.7.26/slf4j-simple-1.7.26.jar!/org/slf4j/impl/StaticLoggerBinder.class]

ERROR in ch.qos.logback.core.joran.util.PropertySetter@100454a1 - A "ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy" object is not assignable to a "ch.qos.logback.core.rolling.RollingPolicy" variable.

要解决此问题,您需要执行后续步骤:

  • 删除slf4j依赖
  • SizeBasedTriggeringPolicy 重命名为 SizeAndTimeBasedRollingPolicy

关于java - Logback,根本没有日志文件(RollingFileAppender 和 SizeBasedTriggeringPolicy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56206468/

相关文章:

java - 部署到 Tomcat 服务器时包含 spring-boot-starter-tomcat 会出现什么问题?

java - 首次运行项目时未生成 Log4j 日志文件

java - 当我从套接字接收到一些数据时,为什么会附加大量空格?

java - Maven 依赖项 javax.servlet 必须包含在新构建服务器的 POM 中

JAVA - 无法将 src/test/java 导入到 src/main/java

java - 通过角色检查在 Tomcat 上集成 Spring Security 和 Waffle

linux - 需要命令来检查正在运行的 tomcat 服务器中的 permgenspace

java - spring maven项目需要添加哪些jsp依赖?

java - jpa oneToMany 和 jackson 序列化问题(新手)

java - 如何将Maven项目作为jar文件部署到Tomcat?