我正在开发一个小的REST服务,它将其信息记录到每月滚动日志文件中。至少它应该。但是,一旦基于时间的滚动触发器启动,随后的每个logstatement都会创建一个新的logroll。
这是我的配置文件:
{
"configuration": {
"name": "Default",
"properties": {
"property": {
"name":"FileName",
"value":"restService.log"
}
},
"appenders": {
"Console": {
"name":"stdout",
"PatternLayout": {
"pattern":"%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %m%n"
}
},
"RollingFile": {
"name":"File",
"fileName":"./${FileName}",
"filePattern":"./${date:yyyy-MM}/restService-%d{yyyy-MM-dd}-%i.log.gz",
"PatternLayout": {
"pattern":"%d %p %logger{36}.%M():%L [%t ThreadId:%T]: %m%n"
},
"Policies": {
"CronTriggeringPolicy": {
"schedule":"0 0 0 1 * ?"
}
}
}
},
"loggers": {
"root": {
"level":"info",
"appender-ref": {
"ref":"File"
}
}
}
}
}
这会每个月创建一个子目录,上个月应该只有一个日志文件。
E.g。如果月份从2016/12更改为2017/01,则会有一个名为“2017-01”的目录,其中包含从文件restService复制的名为“restService-2017-01-01-1.log.gz”的滚动日志文件。登录高一级的目录。
它可以正常工作,但如果服务将新消息记录到其日志文件,则会在子目录“2017-01”中创建一个新的归档日志文件,并将其命名为“restService-2017-01-01-2.log”。 gz“和基本的日志文件应该包含在这个正在进行的月份记录的所有内容 触发器触发后的每条日志消息都会发生这种情况,默认滚动最大值为7,上个月的整个日志将在7条新日志消息后删除。
有人知道,我做错了什么或能指出我的方向吗?
提前谢谢你。 ubreckner