我在我的 log4j2.xml 配置中添加了一个简单的 Appender,以通过 PRICES 标记基本上注销一些价格(以 csv 格式):
<RollingFile name="prices"
fileName="${log-path}/prices.csv"
filePattern="${log-path}/prices.csv.%d{yyyy-MM-dd}">
<MarkerFilter marker="PRICES" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%m%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
每天在特定时间(假设是晚上 8 点),代码将使用 PRICES 标记记录一些内容,该标记应该转到该文件。它通常有效,但有一个奇怪的行为:
记录的第一行不会进入今天的文件,而是进入昨天的文件。
所以在我看来,它只有在写完第一行之后才会滚动。当然这有点烦人,所以我的问题是:我怎样才能防止这种情况发生?