这是我的配置文件:
<Configuration status="INFO">
<Properties>
<Property name="log-path">./log</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile" fileName="${log-path}/mylog.log" filePattern="${log-path}/mylog-%d{yyyy-MM-dd}-%i.log">
<PatternLayout>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%p]\t%m%n</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="32" />
</RollingFile>
<Console name="STDOUT" target="SYSTEM_OUT" ignoreExceptions="false">
<PatternLayout>
<pattern>%n%d{yyyy-MM-dd HH:mm:ss.SSS} [%p]\t%m</pattern>
</PatternLayout>
</Console>
</Appenders>
<Loggers>
<Logger name="mylog" level="debug" additivity="false">
<appender-ref ref="RollingFile" level="DEBUG" />
<appender-ref ref="STDOUT" level="DEBUG" />
</Logger>
</Loggers>
</Configuration>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.0</version>
</dependency>
日志配置文件读起来非常清楚,因为它使用my/log目录中定义的模式正确地写入。
这是我在代码中实例化它的方式:
LoggerContext lcontext = (org.apache.logging.log4j.core.LoggerContext) LogManager.getContext(false)
Logger logger = LogManager.getLogger("mylog");
如果您使用的是web servlet,那么您也将需要这种依赖关系:
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
https://logging.apache.org/log4j/2.x/maven-artifacts.html
错误StatusLogger找不到log4j2配置文件。使用默认配置:只将错误记录到控制台。将系统属性“org.apache.logging.log4j.simplelog.statuslogger.level”设置为TRACE,以显示Log4j2内部初始化日志记录。 解决此问题的方法: 2.增加内容
我试图在我的Ant构建中使用log4j2。创建可执行文件jar。jar工作正常,但似乎无法识别log4j2.xml。我现在把文件放在src文件夹下。并在我的构建中设置类路径。xml如下。我所有的项目都是这样。放置log4j2.xml的合适目录是什么?除了在构建中将其添加到类路径之外,还有其他内容吗。xml要做什么?
最近,我决定学习如何使用log4j2记录器。我下载了所需的jar文件,创建了库,xml编译文件,并尝试使用它。不幸的是,我在console(Eclipse)中得到了这样的语句: 这是我的测试类代码: 和我的xml配置文件: 我还尝试使用不带标记的xml,以及包规范和各种文件夹/包目录,但没有帮助。现在我的文件直接位于Eclipse的project文件夹中。
我已经将其隔离到一个非常简单的测试项目中,该项目除了简单的log4j2test配置使用之外没有其他用途。文件目录结构: 建筑sbt: log4j2.xml内容复制/粘贴从示例在官方留档:https://logging.apache.org/log4j/2.x/manual/configuration.html SimpleMain。斯卡拉: 我跑步与 输出:
我们添加了使用log4J 2的库。X,但我们仍在使用log4J 1。X(主要是因为我们有自己的一些应用程序和记录仪)。我被告知解决方案是发送log4J 2。x到slf4j(使用log4j-to-slf4j,版本2。X),然后slf4j到log4J 1。X,使用slf4j-log4j12,版本1。X. 这就是我刚才所做的,但我仍然得到以下信息: ERROR StatusLogger未找到log4j2
我们已经添加了使用log4j2.x的库,但是我们仍然在使用log4j1.x(主要是因为我们有自己的一些附加程序和记录器的impl)。我被告知,解决方案是将log4j2.x发送到slf4j(使用log4j-to-slf4j,版本2.x),然后将slf4j发送到log4j1.x,使用slf4j-log4j12,版本1.x。 这就是我刚才所做的,但我仍然得到这样的信息: 我希望slf4j使用log4J