我正在尝试为我的应用程序添加Logback日志记录。该代码不会创建日志文件。
我添加了logback核心和back classic。在资源文件夹中添加了logback.xml。确保资源文件夹位于构建路径中。
<configuration debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder >
<pattern>%relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/data/csrt/log_path/logFiles/logFile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/data/csrt/log_path/logFiles/logFile.%d{yyyy-MM-dd-HH-mm}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder >
<pattern>%relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
Java代码:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MainVerticle extends AbstractVerticle {
private static final Logger LOGGER = LoggerFactory.getLogger(MainVerticle.class);
我希望每次运行都会创建一个日志文件。没发生
答案 0 :(得分:0)
日志文件是懒创建的,请尝试添加实际的日志语句,例如:
LOGGER.info("test");
答案 1 :(得分:0)
您实际上在记录什么吗?仅创建一个Logger对象不会产生任何输出或创建任何日志文件。您必须实际调用LOGGER.info/warn/error()
才能进行任何日志记录。
如果您要在MainVerticle类的代码中的其他位置调用LOGGER.info/warn/error()
,这不是问题,请确保您的程序正在以有权写入您所在日志位置的用户身份运行指定。另外,我认为RollingFileAppender不会创建目录,因此请确保要写入日志文件的目录确实存在。
您还将创建一个日志接收器以登录到控制台(感谢您扩展问题以向我们展示您的logback.xml文件)。您是否看到登录到控制台?如果不是,那么您就知道该问题与文件I / O或文件路径或类似的东西无关,因为根本就没有日志记录。