如何在使用log4j生成的日志中缩写/缩短包名称。即,我想要c.l.a.l.MyClass而不是com.longpackage.anotherpackage.lastpackage.MyClass。我在Artifactory中看到了这个日志,但不知道如何使用log4j来实现。 最佳答案 事实证明,这毕竟可以使用log4j(使用v1.2.16测试),这要归功于TomaszNurkiewicz给我指点LogBack.使用EnhancedPatternLayout可以使用ConversionWord功能。布局。来自javadoc...例如
我想在启动时配置一个附加程序,然后根据需要从各种记录器中动态添加和删除它。我宁愿让log4j自己配置这个附加程序,并在需要时获取对它的引用。如果这不可能,我将不得不自己实例化appender并坚持下去。 最佳答案 Appenders通常被添加到根logger。这是一些伪代码//gettherootloggerandremovetheappenderwewantLoggerlogger=Logger.getRootLogger();Appenderappender=logger.getAppender("foo");logger.re
我只是想知道是否有任何方法可以为LOG4J中的属性替换提供默认值?我想在java系统属性中传递文件路径,然后将其与“${env:mySystemProperty}”一起使用。但是如果开发者忘记设置这个属性怎么办?然后我想在log4j2.xml中定义一些有意义的默认值。知道如何实现这个功能吗?编辑:env替换对我不起作用:standalone.conf-DoauthLoginLogPath=/path/oauth2.loglog4j2.xml我可以在wildfly控制台中看到该属性,我重新启动了服务器但我无法完成它。 最佳答案 默认属
我正在尝试在jar外部的文件系统上运行带有log4j.xml文件的jar,如下所示:java-jarMyJarName.jar-cp=/opt/companyName/pathToJar/log4j.configuration=log4j.xmlargToJar1argToJar2我也试过了:java-jarMyJarName.jar-cp=/opt/companyName/pathToJar/log4j.configuration=/opt/companyName/pathToJar/log4j.xmlargToJar1argToJar2log4j.xml文件与jar(/opt/co
我想在我的应用程序中有两个不同的log4j记录器,并且它们写入各自日志的内容之间没有“重叠”。例如:Logger1写入与一组系统事件相关的INFO事件Logger2写入与另一组系统事件相关的INFO事件日志中不应出现任何条目两次我的log4j.properties如下:log4j.rootLogger=DEBUG,stdoutlog4j.logger.org.apache=DEBUG,stdoutlog4j.logger.xdasLogger=DEBUG,xdaslog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.ap
我使用log4j进行日志记录,我想打印特定类/选定包中的所有logger.debug语句。我将cfg设置如下>log4j.category.my.pkg=infolog4j.category.my.pkg.ab.class1=debug但仍然只显示信息消息..这不是正确的方法吗? 最佳答案 不要使用“类别”,而是使用“记录器”。因此,这些级别是为整个log4j配置的,不依赖于appender等。以下更改有效:log4j.logger.my.pkg=infolog4j.logger.my.pkg.ab.class1=debug
是否可以在log4jxml配置文件中引用系统环境变量(相对于Java系统属性)?我希望能够做类似的事情:并让它从系统环境变量中获取,这样我就可以避免使用-D参数传递这么多东西。 最佳答案 我最近尝试这样做,但无法正常工作。我最终做的是在启动时发送一个变量。假设你有一个名为$LOG_LEVEL的环境变量:在启动时...java-Dlog_level=$LOG_LEVELyour_app 关于java-在log4jxml配置中使用系统环境变量,我们在StackOverflow上找到一个类似的
在尝试执行以下行时,仅显示最后两个语句(“HereissomeERROR”和“HereissomeFATAL”),而前三个语句未显示。我刚刚开始学习这个主题,谁能告诉为什么会这样?logger.debug("HereissomeDEBUG");logger.info("HereissomeINFO");logger.warn("HereissomeWARN");logger.error("HereissomeERROR");logger.fatal("HereissomeFATAL");log4j.property有log4j.rootLogger=debug,stdoutlog4j.
$java-Dlog4j.configuration=file:///path/to/your/log4j2.xml-jar/path/to/your/jar_file.jar写到控制台,你得到ERRORStatusLoggerNolog4j2configurationfilefound.Usingdefaultconfiguration:loggingonlyerrorstotheconsole.但是,看起来配置文件已经找到并且无法解析:log4j:WARNContinuableparsingerror2andcolumn31log4j:WARNDocumentrootelement
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭9年前。Improvethisquestion好像log4j有一些classloadingissues(除其他外)在我看来,趋势是从log4j转向slf4j。(Hibernate停止使用第一个,转而使用后者)是真的吗?slf4j解决的log4j主要问题有哪些?slf4j是最终定论,还是有更好的“下一个log4j”行业标准?更新:所以这个answerdelfuego把我搞糊涂了,你能接受/反对吗?:Youappeartohavestum