我在log4j2中定义了一个RollingFile追加器
<RollingFile name="Locserver" append="true" fileName="locserver.log" filePattern="locserver-%i.log">
<PatternLayout>
<pattern>%d{ISO8601} [%t] %p %c %L - %m%n</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="50 MB"></SizeBasedTriggeringPolicy>
<DefaultRolloverStrategy>10</DefaultRolloverStrategy>
</Policies>
</RollingFile>
但是,当我尝试运行此命令时,我得到一个错误
IllegalStateException:模式在组织中不包含日期。阿帕奇。登录中。log4j。果心阿佩德。滚动的。图形处理器。getNExtTime(PatternProcessor.java:91)
当我在filePattern中放入日期模式时,这种情况就消失了,例如,locserver-%d{MM-dd-yyyy}-%i.log
。但是我不希望日志名称中的日期。我的配置是错误还是有问题?
对我来说,这就像这里描述的一样(使用log4j2.0-beta9)
我的log4j。xml
(大小策略设置为1kB,仅用于测试):
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
<RollingFile name="Logfile"
fileName="Log/App.log"
filePattern="Log/App-%i.log">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="1 KB"/>
</Policies>
<DefaultRolloverStrategy max="4"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="Logfile"/>
</Root>
</Loggers>
</Configuration>
它也可以在使用配置片段时工作(我刚刚更正了DefaultRolloverStrategy设置):
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
<RollingFile name="Locserver"
append="true"
fileName="locserver.log"
filePattern="locserver-%i.log">
<PatternLayout>
<pattern>%d{ISO8601} [%t] %p %c %L - %m%n</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="50 MB"></SizeBasedTriggeringPolicy>
</Policies>
<DefaultRolloverStrategy max="4"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="eeo.tts" level="debug"/>
<Root level="info">
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="Locserver"/>
</Root>
</Loggers>
</Configuration>
您使用的是哪个版本的log4j2?
在RollingFile appender中,TimeBasedTrigerring策略检查标签的filepattern属性中的datepattern。然后,使用TimeBasedTrigerring策略时,必须指定日期标签。
放置%d{…}
在
文件模式中包含SimpleDate模式,例如:
<Appenders>
<RollingFile name="RollingFile" fileName="logs/rpi_gpio_latest.log"
filePattern="logs/**%d{yyyy-MM-dd_HH}**_rpi_gpio_%i.log">
<PatternLayout>
<Pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="4 MB"/>
</Policies>
<DefaultRolloverStrategy fileIndex="max"/>
</RollingFile>
</Appenders>
谢谢你,乔。我终于明白了。
我的策略列表中有一个空的TimeBasedTriggeringPolicy标记,它强制在filePattern中进行日期检查。一旦我把它取下来,它就开始正常工作了。
我正在尝试将字符串转换为时间戳,但收到日期模式的解析错误。 线程“main”中出现异常Java . time . format . datetimeparseexception:无法在索引13处解析文本“22/10/18 - 3:05pm”
问题内容: 我希望得到一些帮助,以帮助我编写一些自己编写的SQL语句。 我有一张数据表: 我需要获得以下信息: 换句话说,按日期划分日期范围。在SQL中甚至可能吗? 我的数据库是Oracle 11G R2,由于某些情况,我担心不能使用PL / SQL。 问题答案: 可以在SQL中执行此操作。有两个技巧。首先是生成一系列数字,您可以使用进行CTE处理。 第二个是将正确的逻辑放在一起以扩展日期,同时保
默认情况下,Eloquent会将创建的和更新的列转换为Carbon实例。检索$dates属性中列出的属性时,它们将自动转换为Carbon实例,允许您对属性使用Carbon的任何方法。 我有以下日期属性-我还没有包括created_at和updated_at列,因为这些是按照上面的默认转换: 然后,我在模型上有以下访问器: 但是,上述操作会引发以下错误: 如果我将该方法更改为以下方法,它将起作用:
问题内容: 需要格式为yyyy-mm的日期,并且应该分组以获取计数,但是当我给 我找到了这个解决方案 任何人都可以通过提供其他解决方案来帮助我 问题答案: 我认为最简单的方法如下: 但是,我从来都不喜欢在应用程序层之前将日期转换为字符串,所以如果是我,我会将其保留为日期格式,但是使用以下命令将每个日期转换为每月的第一天: 这意味着您的应用程序将列作为日期接收,并且可以将其作为日期进行操作,按日期进
我需要的日期只有yyyy-mm-dd格式,因为DB2表有10精度的日期列。
问题内容: 我正在尝试向表中添加约束,以使其将列之一显示为当前日期加上10天。到目前为止,这是我尝试过的内容(我对SQL还是很陌生): ! 编辑:我现在也尝试过此操作: 编辑:感谢ypercube和我的同学。最终的代码是: 问题答案: SQL-Server中用于将值添加到现有列的语法为: 经过 SQL-Fiddle 测试