无法使用slf4j生成日志文件?

时间:2018-09-12 08:02:19

标签: maven slf4j

我有一个标准的maven项目和我的maven设置:

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.4</version>
        </dependency>

在“资源”目录下,有两个文件: 1. boot.properties:

logging.config=classpath:log4j2.xml
  1. log4j2.xml

                    日志         信息         错误     

    <Appenders>
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS} [%t] %-5level %class{36} [%L] [%M] - %msg%xEx%n" />
        </Console>
    
        <RollingRandomAccessFile name="INFO-LOG" fileName="${LOG_HOME}/${INFO_FILE_NAME}.log" filePattern="${LOG_HOME}/${INFO_FILE_NAME}_%d{yyyy-MM-dd}_%i.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS} [%t] %-5level %class{36} [%L] [%M] - %msg%xEx%n" />
            <Policies>
                <TimeBasedTriggeringPolicy modulate="true" interval="1" />
                <SizeBasedTriggeringPolicy size="512000 KB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingRandomAccessFile>
    
        <RollingRandomAccessFile name="ERROR-LOG" fileName="${LOG_HOME}/${ERROR_FILE_NAME}.log" filePattern="${LOG_HOME}/${ERROR_FILE_NAME}_%d{yyyy-MM-dd}_%i.log">
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS} [%t] %-5level %class{36} [%L] [%M] - %msg%xEx%n" />
            <Policies>
                <TimeBasedTriggeringPolicy modulate="true" interval="1" />
                <SizeBasedTriggeringPolicy size="512000 KB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingRandomAccessFile>
    </Appenders>
    
    <Loggers>
        <Root level="INFO" includeLocation="true">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="INFO-LOG" />
            <appender-ref ref="ERROR-LOG" />
        </Root>
    </Loggers>
    

我的问题是,当我运行应用程序时,我没有在根目录中看到“ log”目录和日志文件。

2 个答案:

答案 0 :(得分:0)

Slf4J没有提供任何实际的日志记录实现。 看来您需要log4j2的slf4j绑定。 slf4j-simple无法读取log4j2.xml

this tutorial开始具有以下依赖关系

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.7</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.7</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-slf4j-impl</artifactId>
  <version>2.7</version>
</dependency>

答案 1 :(得分:0)

我认为问题是由于在根文件夹中具有访问权限。 Logger无法在根目录中创建日志文件夹。 您可以通过尝试在根文件夹中创建目录来自己检查它。 您可以在log4j2.xml中用用户路径代替根目录。