跑步:Cassandra 2.1.8.689 | Linux 2.6上的DSE 4.7.3
配置logback.xml。 Cassandra每天午夜停止写入日志文件。日志文件中的最后一个条目:
INFO [CompactionExecutor:6550] 2017-01-05 23:59:58,928INFO ......
在logback.xml中更改文件名(即system1.log到system2.log)后,写简历。 6个节点的相同行为是一致的。
谢谢Aaron。回溯详情如下。
<configuration scan="true">
<appender name="FIX_WINDOW_BASED_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${cassandra.logdir}/system.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${cassandra.logdir}/system%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>31</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>200MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%-5level [%thread] %date{ISO8601} %marker %F:%L - %msg%n</pattern>
<!-- old-style log format
<pattern>%5level [%thread] %date{ISO8601} %F (line %L) %msg%n</pattern>
-->
</encoder>
问题已解决。将DSE从4.7.3升级到4.8.11后,输出到system.log工作正常。
答案 0 :(得分:1)
您应该能够在logback.xml文件中控制此行为。该文件应该是<appender>
部分,看起来应该是这样的:
<appender name="stash" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<file>/var/log/cassandra/system.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>/var/log/cassandra/system.log.%d{yyyy-MM-dd}-%i</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 50MB -->
<maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- keep 5 days' worth of history -->
<maxHistory>5</maxHistory>
</rollingPolicy>
<encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
我的猜测是文件翻转是在午夜触发的,但是<fileNamePattern>
必须有一些内容阻止它创建新文件。