Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Logback,根本没有日志文件(RollingFileAppender和SizeBasedTriggeringPolicy_Java_Maven_Tomcat_Logging_Logback - Fatal编程技术网

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

Java Logback,根本没有日志文件(RollingFileAppender和SizeBasedTriggeringPolicy,java,maven,tomcat,logging,logback,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> <rolli

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>

log/application.log
日志/应用程序-%d{yyyy-MM-dd}。日志%i
5MB
%d{HH:mm:ss.SSS}[%thread]-5级别%logger{36}-%msg%n
service.java

 static final Logger LOG = LoggerFactory.getLogger(TestClass.class);
public List<Items> getAll(){
    LOG.info("hi, info!!!!!");
    LOG.error("hi, error!!!!!");
}
static final Logger LOG=LoggerFactory.getLogger(TestClass.class);
公共列表getAll(){
LOG.info(“嗨,info!!!”);
LOG.error(“嗨,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>

回写
回归经典
1.2.3
测试
org.slf4j
slf4j api
${slf4j版本}
org.slf4j
slf4j简单
${slf4j版本}

预期日志将位于日志文件中。我偶然发现问题 我从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依赖项
  • 将SizeBaedTriggeringPolicy重命名为 SizeAndTimeBasedRollingPolicy

我偶然发现一个问题 我从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依赖项
  • 将SizeBaedTriggeringPolicy重命名为 SizeAndTimeBasedRollingPolicy

我已经提供了答案,您能检查一下吗?抱歉,忘记复制logback dependency为什么logback dependency的作用域是test?如果您没有从junit test运行service.java,请删除此选项现在日志从控制台消失,但日志文件夹中没有文件请尝试绝对路径。我认为您正在查找错误的目录。我提供了answer,您能检查一下吗?抱歉,忘记复制logback dependency为什么logback dependency的作用域是test?如果您不从junit testNow运行service.java,请删除此项。日志已从控制台中消失,但日志文件夹中没有文件请尝试绝对路径。我认为您正在查找错误的目录。