java - Logback 不会将日志写入文件
问题描述
我有一个 Java 独立的 REST 应用程序,它位于 Tomсat 中。我需要将日志输出到文件,我使用 logback。但是日志不会写入文件。它们显示在控制台中,尽管我删除了控制台附加程序。如果您在 Windows 机器上尝试,一切都会好起来的。在 RedHat 上尝试(没有 GUI),日志不会输出到文件(尽管它们应该)并输出到控制台(尽管它们不应该显示)。该应用程序工作正常,响应查询。
Logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="DEV_HOME" value="/var/tmp" />
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DEV_HOME}/mytest.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${DEV_HOME}/mytest-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>2KB</maxFileSize>
<maxHistory>4</maxHistory>
<totalSizeCap>10KB</totalSizeCap>
</rollingPolicy>
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="file" />
</root>
</configuration>
在 Eclipse 中,我确实导出到 Runnable jar 文件,我把它扔到 Linux 机器上。我运行如下:
java -jar test.jar &
解决方案
推荐阅读
- java - 如何以相反的方式对对象列表进行排序?
- selenium - 我能否为单个 UI 元素提供多个辅助功能 ID?
- python - Python 磁场图
- angular - 显示带有嵌套动态对象 Angular 的 mat-table
- bash - 转换用空格分隔的列表 - 将每个项目放在一个新行上并在其前面加上一个连字符
- ios - 无法发出预编译头 Xcode 12 MacBook M1
- python - 如何用另一个列表或字典匹配替换熊猫数据框列名
- python - FileNotFoundError:[Errno 2]:没有这样的文件或目录:'C:/Users/My_computer/Desktop/Compare/MHAN-master/AID_train/AID_train_LR/x4\\9.png'
- javascript - 在 JS 中分配给它时,有没有办法(或建议)返回对象?
- python - Keras 贝叶斯优化越界