【发布时间】:2014-12-18 05:03:32
【问题描述】:
我的服务每小时都有一个日志。活动日志文件是 service.log 。存档文件名类似于 service-2014-12-15-03.log.gz 但是,如果我在 10:59 停止服务并在 11:01 启动,则该服务会继续写入 service.log,并且只会在 11:59 进行轮换,并且有 service-2014-12-15-11.log .gz 包含 2 小时的日志。我想在服务关闭时强制进行日志轮换。
我相信我的问题包括 3 个部分:
- 如何挂钩 Dropwizard 服务的关闭?
- 如何访问 Logback 实例(我可能完全错了)?
- 如何强制日志轮换?
我在 Google 上搜索了几个小时,但根本没有找到答案。我还在 GitHub 上查看了 Dropwizard 源代码。
请帮忙。我在 Dropwizard 0.6.2 上,但如果 0.7.x 中存在解决方案,我可以升级
====更新====
main 方法中的关闭挂钩有效。托管对象停止也有效。仅供参考,托管对象停止在关闭挂钩后被调用。
^Cshutdown Hook called
INFO [2014-12-17 20:35:07,861] org.eclipse.jetty.server.Server: Graceful shutdown SocketConnector@0.0.0.0:9051
INFO [2014-12-17 20:35:07,862] org.eclipse.jetty.server.Server: Graceful shutdown InstrumentedBlockingChannelConnector@0.0.0.0:9050
INFO [2014-12-17 20:35:07,863] org.eclipse.jetty.server.Server: Graceful shutdown o.e.j.s.ServletContextHandler{/,null}
INFO [2014-12-17 20:35:07,864] org.eclipse.jetty.server.Server: Graceful shutdown o.e.j.s.ServletContextHandler{/,null}
INFO [2014-12-17 20:35:09,918] org.eclipse.jetty.server.handler.ContextHandler: stopped o.e.j.s.ServletContextHandler{/,null}
INFO [2014-12-17 20:35:09,918] org.eclipse.jetty.server.handler.ContextHandler: stopped o.e.j.s.ServletContextHandler{/,null}
Managed object stop called
我仍然需要关于问题 2 和 3 的帮助。
【问题讨论】:
标签: slf4j logback dropwizard