Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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 如何避免slf4j日志记录中出现多个日志文件?_Java_Spring_Logging_Slf4j - Fatal编程技术网

Java 如何避免slf4j日志记录中出现多个日志文件?

Java 如何避免slf4j日志记录中出现多个日志文件?,java,spring,logging,slf4j,Java,Spring,Logging,Slf4j,我正在使用logback.xml实现SLF4J日志记录,但应用程序正在创建多个日志文件。 我需要为一个日期创建一个日志文件,所有日志级别都在同一个日志文件中 下面是我的logback.xml配置 <?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="LOG_FILE_LOCATION" value="./log/" /> <appender name

我正在使用logback.xml实现SLF4J日志记录,但应用程序正在创建多个日志文件。 我需要为一个日期创建一个日志文件,所有日志级别都在同一个日志文件中

下面是我的logback.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_FILE_LOCATION" value="./log/" />

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>[%d{yyyy-MM-dd HH:mm:ss}] [%thread] [%-5level] [%logger] - %msg%n</Pattern>
        </layout>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>[%d{yyyy-MM-dd HH:mm:ss}] [%thread] [%-5level] [%logger] - %msg%n</pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE_LOCATION}/manageng_%d{yyyy-MM-dd_HH-mm-ss}.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>


    <appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>[%d{yyyy-MM-dd HH:mm:ss}] [%thread] [%-5level] [%logger] - %msg%n</Pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE_LOCATION}/manageng_error_%d{yyyy-MM-dd_HH-mm-ss}.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>


    <logger name="net.indecomm.manageng" level="debug" additivity="false">
        <appender-ref ref="FILE"/>
        <appender-ref ref="CONSOLE"/>
    </logger>

    <root level="ERROR">
        <appender-ref ref="FILE-ERROR"/>
        <appender-ref ref="CONSOLE"/>
    </root>


</configuration>

[%d{yyyy-MM-dd HH:MM:ss}][%thread][%-5level][%logger]-%msg%n
[%d{yyyy-MM-dd HH:MM:ss}][%thread][%-5level][%logger]-%msg%n
${LOG\u FILE\u LOCATION}/manageng\u%d{yyyy-MM-dd\u HH-MM-ss}.LOG
10MB
[%d{yyyy-MM-dd HH:MM:ss}][%thread][%-5level][%logger]-%msg%n
${LOG\u FILE\u LOCATION}/manageng\u error\u%d{yyyy-MM-dd\u HH-MM-ss}.LOG
10MB

只需将其简化为:

<configuration>
    <property name="LOG_FILE_LOCATION" value="./log/" />

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>[%d{yyyy-MM-dd HH:mm:ss}] [%thread] [%-5level] [%logger] - %msg%n</pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE_LOCATION}/manageng_%d{yyyy-MM-dd_HH-mm-ss}.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <logger name="net.indecomm.manageng" level="debug" additivity="false">
        <appender-ref ref="FILE"/>
    </logger>

    <root level="DEBUG">
        <appender-ref ref="FILE"/>
    </root>

</configuration>

[%d{yyyy-MM-dd HH:MM:ss}][%thread][%-5level][%logger]-%msg%n
${LOG\u FILE\u LOCATION}/manageng\u%d{yyyy-MM-dd\u HH-MM-ss}.LOG
10MB

只需将其简化为:

<configuration>
    <property name="LOG_FILE_LOCATION" value="./log/" />

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>[%d{yyyy-MM-dd HH:mm:ss}] [%thread] [%-5level] [%logger] - %msg%n</pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE_LOCATION}/manageng_%d{yyyy-MM-dd_HH-mm-ss}.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <logger name="net.indecomm.manageng" level="debug" additivity="false">
        <appender-ref ref="FILE"/>
    </logger>

    <root level="DEBUG">
        <appender-ref ref="FILE"/>
    </root>

</configuration>

[%d{yyyy-MM-dd HH:MM:ss}][%thread][%-5level][%logger]-%msg%n
${LOG\u FILE\u LOCATION}/manageng\u%d{yyyy-MM-dd\u HH-MM-ss}.LOG
10MB

感谢您的快速回复。但现在,使用我根本没有记录的所有必要数据创建的日志文件的数量甚至更多。记录器名称是根据包名称筛选日志。我只想打印我在任一级别记录的那些语句。不希望在日志文件中打印任何其他语句。日志文件在一天或一天内只能有一个。感谢您的快速回复。但现在,使用我根本没有记录的所有必要数据创建的日志文件的数量甚至更多。记录器名称是根据包名称筛选日志。我只想打印我在任一级别记录的那些语句。不希望在日志文件中打印任何其他语句。日志文件在一天或一个日期内只能有一个。