我正在尋找一種方法來在午夜旋轉日誌文件,並且要求無論日誌中寫什麼,都必須遵守翻滾時間(功能相當於* nix logrotate程序)。保證日誌在午夜旋轉的Java日誌框架
我看過的所有實現(log4j,logback)都需要記錄事件作爲日誌循環的觸發器( 00:00之後的第一個日誌事件觸發旋轉)。這意味着不能保證日誌在給定時間被輪換(因爲所需的觸發事件可能在數小時後到達)。
是否有一個日誌框架,可以確保在給定時間的日誌輪換?
我正在尋找一種方法來在午夜旋轉日誌文件,並且要求無論日誌中寫什麼,都必須遵守翻滾時間(功能相當於* nix logrotate程序)。保證日誌在午夜旋轉的Java日誌框架
我看過的所有實現(log4j,logback)都需要記錄事件作爲日誌循環的觸發器( 00:00之後的第一個日誌事件觸發旋轉)。這意味着不能保證日誌在給定時間被輪換(因爲所需的觸發事件可能在數小時後到達)。
是否有一個日誌框架,可以確保在給定時間的日誌輪換?
如果是這樣,你可以使用CronTrigger觸發一個簡單的java類來每天午夜做一個虛擬日誌。
假設你的代碼在springframework上,你可以把下面的配置作爲參考。
<bean id="logRotateAlert" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<value>xxx.xxx.LogRotateAlert</value>
</property>
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="logRotateAlert"/>
<property name="cronExpression" value="0 0 0 * * ?"/>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger"/>
</list>
</property>
</bean>
感謝您的答案,但虛擬日誌事件正是我想要避免的。 – diciu 2012-03-28 05:44:09
你有沒有解決過這個問題? – Will 2012-11-21 08:17:01
我沒有找到合適的解決方案 - 我使用了虛擬日誌事件。 – diciu 2012-11-21 09:06:10