我一定会丢失一些东西,但是我已经看了几天了,但是到底为什么您会使用log4j2而不是log4j(而不是性能)?
从目前为止我所看到的,log4j2被宣传为更易于配置,但实际上却要复杂得多(现在已经三天了,我仍然无法在我的主目录中写日志)。自动配置对我根本不起作用(或者至少我无法使其工作),配置文件本身的结构实质上更复杂,在运行时添加东西以帮助诊断似乎更加困难。
因此,除了性能之外,还有什么理由要使用log4j2而非原始log4j?
从Log4j 1.x升级到Log4j 2的原因
更新:自2015年8月起,Log4j
1.x正式终止生命
,建议升级到Log4j2。更新2:Java
4中打破了Log4j
1.2
。
意识到
log4j-1.2-api
适配器支持Log4j 1.2 API,但是依赖Log4j 1.2内部的自定义设置可能无法工作。升级提示
人们开始使用log4j2时遇到的常见问题:
log4j.configurationFile
系统属性指定其路径<Configuration status="trace">
在配置文件的开头使用如果您的问题不是上述问题之一,请显示配置并提供有关遇到的问题的更多详细信息。(不确定您对自动配置的期望是什么,如果log4j2找不到配置文件,这是一个非常基本的功能,它将ERROR事件记录到控制台。
要写入主目录,可以使用系统属性lookup
${sys:PROPERTYNAME}
。下面是一个示例配置,以演示:
<Configuration status="trace">
<Properties>
<Property name="logfile">${sys:user.home}/log${date:yyyyMMdd}.log</Property>
</Properties>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n"/>
</Console>
<File name="FILE" fileName="${sys:logfile}">
<PatternLayout>
<pattern>%d %p [%t] %c{1.} %m%n</pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="STDOUT" level="ERROR" />
<AppenderRef ref="FILE" />
</Root>
</Loggers>
</Configuration>
问题内容: 我在网上研究过immutablejs的好处,但是没有发现任何令人满意的东西! 我的问题是,当我可以冻结一个普通的旧javascript对象时,为什么我应该使用该库并使用非本机数据结构? 问题答案: 我认为您不了解immutablejs提供的功能。这不是一个使您的对象变得不可变的库,而是一个使用不可变值的库。 在不简单重复他们的文档和任务说明的情况下,我将说明它提供的两件事: 类型。他们
问题内容: 为什么要在上使用pip?难道不是PyPI和程序包作者最主要的原因吗?如果作者将废话源tarball(例如:丢失的文件,没有)上传到PyPI,则pip和都会失败。除了外观上的差异外,为什么Python的人(如上述推文中)似乎强烈青睐pip而不是? (假设我们正在谈论由社区维护的Distribute软件包中的) 问题答案: 这里的许多答案在2015年已经过时了(尽管丹尼尔·罗斯曼最初接受的
问题内容: 我的用例需要一个数据结构。我应该能够将项目推送到数据结构中,而我只想从堆栈中检索最后一个项目。该堆栈的JavaDoc说: Deque接口及其实现提供了一组更完整和一致的LIFO堆栈操作,应优先使用此类。例如: 我绝对不希望这里出现同步行为,因为我将使用方法本地的数据结构。除了这个,我为什么还要在这里呢? PS:Deque的Javadoc说: 双端队列也可以用作LIFO(后进先出)堆栈。
我想使用log4j2作为我的slf4j日志记录应用程序的日志记录实现。 文档说明我必须依赖于log4j-slf4j-impl和log4j-core。 我的问题是为什么log4j-slf4j-impl不依赖于log4j-core(因此带来了它绝对需要的库)?
我需要一个数据结构用于我的用例。我应该能够将项目推入数据结构,并且我只想从堆栈中检索最后一个项目。JavaDoc for Stack表示:
问题内容: 我们知道,双冒号()用于科特林,如获得功能(可赎回)的参考,。 在Java中,我们使用和获取类。为什么在科特林我们使用和,而不是一个函数/方法? 问题答案: 在Kotlin中,有关元编程的内容包括方法引用,属性引用和类文字。请参阅有关类文字的讨论。