草庐IT

java - log4j:缩写/缩短包名称

如何在使用log4j生成的日志中缩写/缩短包名称。即,我想要c.l.a.l.MyClass而不是com.longpackage.anotherpackage.lastpackage.MyClass。我在Artifactory中看到了这个日志,但不知道如何使用log4j来实现。 最佳答案 事实证明,这毕竟可以使用log4j(使用v1.2.16测试),这要归功于TomaszNurkiewicz给我指点LogBack.使用EnhancedPatternLayout可以使用ConversionWord功能。布局。来自javadoc...例如

java - 如何在运行时访问已配置的 Log4J 附加程序?

我想在启动时配置一个附加程序,然后根据需要从各种记录器中动态添加和删除它。我宁愿让log4j自己配置这个附加程序,并在需要时获取对它的引用。如果这不可能,我将不得不自己实例化appender并坚持下去。 最佳答案 Appenders通常被添加到根logger。这是一些伪代码//gettherootloggerandremovetheappenderwewantLoggerlogger=Logger.getRootLogger();Appenderappender=logger.getAppender("foo");logger.re

java - Log4J2 属性替换 - 默认

我只是想知道是否有任何方法可以为LOG4J中的属性替换提供默认值?我想在java系统属性中传递文件路径,然后将其与“${env:mySystemProperty}”一起使用。但是如果开发者忘记设置这个属性怎么办?然后我想在log4j2.xml中定义一些有意义的默认值。知道如何实现这个功能吗?编辑:env替换对我不起作用:standalone.conf-DoauthLoginLogPath=/path/oauth2.loglog4j2.xml我可以在wildfly控制台中看到该属性,我重新启动了服务器但我无法完成它。 最佳答案 默认属

java - 外部 log4j.xml 文件

我正在尝试在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

java - 你觉得 java.util.logging 足够了吗?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前。根据标题,您是否发现默认的Java日志框架足以满足您的需求?您是否使用其他日志记录服务,例如log4j还是其他人?如果是这样,为什么?我想听听您对不同类型项目的日志记录要求的任何建议,以及何时集成框架实际上是必要和/或有用的。 最佳答案 java.util.logging(jul)从一开始就没有必要

Java 日志记录 : show the source line number of the caller (not the logging helper method)

Java的众多(叹息...)日志框架都很好地显示了创建日志消息的方法的源文件名的行号:log.info("hey");[INFO][Foo:413]hey但如果中间有辅助方法,实际调用者将是辅助方法,这并没有太多信息。log_info("hey");[INFO][LoggingSupport:123]hey在确定要打印的源位置时,有没有办法告诉日志记录系统从调用堆栈中删除一帧?我想这是特定于实现的;我需要的是通过CommonsLogging实现的Log4J,但我有兴趣了解其他选项。 最佳答案 另一种答案。可以通过使用方法要求log4

java - log4j.properties 文件 - 同一类中的多个记录器

我想在我的应用程序中有两个不同的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

java - log4j - 为不同的包/类设置不同的日志级别

我使用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

java - 在 log4j xml 配置中使用系统环境变量

是否可以在log4jxml配置文件中引用系统环境变量(相对于Java系统属性)?我希望能够做类似的事情:并让它从系统环境变量中获取,这样我就可以避免使用-D参数传递这么多东西。 最佳答案 我最近尝试这样做,但无法正常工作。我最终做的是在启动时发送一个变量。假设你有一个名为$LOG_LEVEL的环境变量:在启动时...java-Dlog_level=$LOG_LEVELyour_app 关于java-在log4jxml配置中使用系统环境变量,我们在StackOverflow上找到一个类似的

java - 如何在 Log4j 中启用 Logger.debug()

在尝试执行以下行时,仅显示最后两个语句(“HereissomeERROR”和“HereissomeFATAL”),而前三个语句未显示。我刚刚开始学习这个主题,谁能告诉为什么会这样?logger.debug("HereissomeDEBUG");logger.info("HereissomeINFO");logger.warn("HereissomeWARN");logger.error("HereissomeERROR");logger.fatal("HereissomeFATAL");log4j.property有log4j.rootLogger=debug,stdoutlog4j.