Java日志记录框架,保证日志在午夜旋转
我正在寻找一种在午夜旋转日志文件的方法,并增加了一个要求,即无论日志中写入了什么,都必须遵守滚动时间(功能等价物是*nix logrotate程序) 我看过的所有实现(log4j,logback)都需要日志事件作为日志旋转的触发器(00:00之后的第一个日志事件触发旋转)。这意味着无法保证日志在给定的时间循环(因为所需的触发事件可能会在数小时后到达)Java日志记录框架,保证日志在午夜旋转,java,logging,Java,Logging,我正在寻找一种在午夜旋转日志文件的方法,并增加了一个要求,即无论日志中写入了什么,都必须遵守滚动时间(功能等价物是*nix logrotate程序) 我看过的所有实现(log4j,logback)都需要日志事件作为日志旋转的触发器(00:00之后的第一个日志事件触发旋转)。这意味着无法保证日志在给定的时间循环(因为所需的触发事件可能会在数小时后到达) 是否有一个日志框架可以保证日志在给定的时间内旋转?如果是这样,您可以使用CronTrigger来触发一个简单的java类,以便每天午夜进行虚拟日志
是否有一个日志框架可以保证日志在给定的时间内旋转?如果是这样,您可以使用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>
xxx.xxx.LogRotateAlert
谢谢您的回答,但虚拟日志事件正是我试图避免的。您解决过这个问题吗?我没有找到合适的解决方案-我使用了虚拟日志事件。