首页 > 解决方案 > 使 Logback 打印日志到文件

问题描述

我有一个 Ktor 服务器应用程序,我希望在文件中输出日志,这是我的 logback.xml 配置:

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>logs/log-%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>30</maxHistory>
        <totalSizeCap>3GB</totalSizeCap>
    </rollingPolicy>
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>3MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<root level="info">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="rollingFile"/>
</root>

<logger name="org.eclipse.jetty" level="INFO"/>
<logger name="io.netty" level="INFO"/> </configuration>

当我使用java -jar server.jar运行服务器时,一切正常,日志被写入文件。/logs 文件夹有 0777 权限,所以每个人都可以访问和写入。

当我使用nohup java -jar server.jar &以分离模式运行服务器时,问题就出现了,服务器没有写入文件。

有任何想法吗?

标签: javalogginglogbackktor

解决方案


推荐阅读