Tag: log4j2

Log4j2 api在OSGi环境中找不到Log4j2核心

我正在尝试使用log4j2 OSGi包,但似乎log4j2 api在OSGi环境中找不到log4j2核心。 我不断得到以下exception: ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console 我发现在很少的地方讨论了同样的例外,但我仍然无法弄清楚这个问题。 Isuspect我遇到了这个问题,因为log4j2 api无法在log4j2核心的META-INF目录中找到log4j-provider.properties。 有什么线索为什么我得到这个例外,我该如何纠正这个问题? (如果有人有正确的pom文件添加log4j依赖项和捆绑请与我分享) 这些是我使用的依赖项 org.apache.logging.log4j log4j-api 2.2 org.apache.logging.log4j log4j-core 2.2 我使用apache felix作为bundle插件。 发生此错误的原因是log4j2-core的META-INF内部的资源特别是log4j-providoer.properties文件对log4j api不可见。 谢谢!

log4j2:为异步日志记录设置Log4jContextSelector系统属性的位置

我试图在当前在自由配置文件服务器中运行的REST Web方法中设置异步日志记录(出于性能原因)。 为此,我设置了以下属性: System.setProperty(“Log4jContextSelector”, “org.apache.logging.log4j.core.async.AsyncLoggerContextSelector”); 我的问题是,无论我在哪里这样做,有时它的工作和记录非常快,有时它不会。 我已经尝试了(a)包含所有REST Web方法(b)的类的构造函数,该方法在REST方法之前在REST方法(d)中在REST方法本身(d)中调用 这些位置都不一致。 任何人都可以提供此行为的解释,如果可能的话,建议的方法来解决问题。 编辑:似乎在调用setProperty之前初始化了log4j。 所以我需要做的是通过自由配置文件来设置属性。

log4j2中基于时间的触发策略

我试图每小时创建新的日志文件。 我在RollingFileAppender中使用lo4j2的TimeBasedTriggerringPolicy。 下面是我从log4j2官方网站上获取的示例xml配置代码。 %d %p %c{1.} [%t] %m%n ** ** 在interval属性中,我设置了1表示1小时。 但我的文件仍然不会每1小时滚动一次。 请帮我发现任何错误。 注意:我已经包含了log4j2的beta9(这是最新的)

如何使用SLF4J和Log4j2记录FATAL(或任何自定义日志级别)

我有这些具体要求 : 需要能够登录致命等级 需要使用SLF4J 需要使用Log4j2 现在,这是我的实现 : final Logger logger = LoggerFactory.getLogger(HelloWorld.class); final Marker marker = MarkerFactory.getMarker(“FATAL”); logger.error(marker, “!!! Fatal World !!!”); 这是我的PatternLayout (在yaml中) : PatternLayout: Pattern: “%d{ISO8601_BASIC} %-5level %marker [%t] %logger{3.} – %msg%n” 这是我的日志输出 : 20150506T155705,158 ERROR FATAL [main] – !!! Fatal World !!! 您是否知道如何有效地从日志输出中删除“错误”? 非常感谢你

JUL适配器不适用于Jersey

我正在尝试使用JUL Adapter将Java Util Logging委派给Log4j2。 更准确地说,任何使用JUL生成日志的第三方库都应该委托给Log4j2。 作为一个简单的练习,我创建了一个使用库的独立应用程序(我创建此库用于测试目的,它使用JUL生成日志)来测试JUL适配器 。 当我按照此处所述更改日志管理器时,我可以看到效果。 它工作正常。 她是代码: import org.apache.logging.log4j.LogManager; import com.ah.loggen.LogGenerator; public class TestLogging { static { System.setProperty(“java.util.logging.manager”, “org.apache.logging.log4j.jul.LogManager”); } private static final org.apache.logging.log4j.Logger LOG4J = LogManager.getLogger(); public static void main(String[] args) { System.out.println(“Java Util Logging”); LogGenerator.generateError(“This is an error message.”); LogGenerator.generateInfo(“This is an info message.”); LogGenerator.generateWarning(“This is a warning message.”); System.out.println(“LOG4J”); […]

log4j2 SMTP Appender:如何将以前的消息包含在另一个级别?

我正在使用log4j2-beta9,我有以下配置(部分): %d{dd-MM-yyyy HH:mm:ss,SSS} %5p %m%n 使用此配置,我收到的电子邮件只有一(1)个错误消息。 如何配置log4j2以接收1条错误消息和N条以前的LEVEL = INFO消息? 提前致谢。

使用Log4j2 2.10.0运行Java 9模块

我正在尝试运行我创建的Java 9模块,它使用Log4j2 2.10.0。 我遇到的问题是我得到了一个 java.lang.NoClassDefFoundError: Could not initialize class org.apache.logging.log4j.util.PropertiesUtil 在做LogManager.getLogger() 。 它找到了LogManager类,但是当它从StatusLogger内部调用new PropertiesUtil(“log4j2.StatusLogger.properties”) ,它会得到上述错误。 如何修复/找到解决方法? 添加信息: 堆栈跟踪: Exception in thread “main” java.lang.NoClassDefFoundError: Could not initialize class org.apache.logging.log4j.util.PropertiesUtil at org.apache.logging.log4j/org.apache.logging.log4j.status.StatusLogger.(StatusLogger.java:71) at org.apache.logging.log4j/org.apache.logging.log4j.LogManager.(LogManager.java:60) at com.EvolutionarySoftwareSystems.Utilities/com.EvolutionarySoftwareSystems.Utilities.Base.DebugAble.(DebugAble.java:45) 更奇怪的是我可以直接调用invoke:来自我的代码的new PropertiesUtil(“string”) ,它找到了类。 我正在使用日食氧气4.7.1a。 我的eclipse启动配置文件: 模块文件: module com.EvolutionarySoftwareSystems.Evolver { // // // Export the com.EvolutionarySoftwareSystems package // requires com.EvolutionarySoftwareSystems.Base; requires com.EvolutionarySoftwareSystems.Utilities; […]

使用log4j2进行Spring-Boot日志记录?

我正在使用spring-boot-starter ,并且希望配置log4j2.xml以将异步+不同内容记录到不同的日志文件。 我创建了log4j2文件,但Spring仍然使用spring-boot默认日志记录。 如何切换日志记录?

如何使用log4j 2.0和slf4j以及Commons一起登录

我目前正在开始一个新的Webapp(在tomcat 6上运行)我有使用slf4j的组件和使用commons日志记录的组件我计划使用log4j 2.0作为日志实现由于几个原因(主要用于appender:SocketAppender和SyslogAppender但也因为提升配置重新加载而不丢失日志事件) 现在我的问题是: – 我可以为哪些界面编写新课程? loag4j还是slf4j? 甚至公共伐木? 什么是部署jar子的首选方式? 把它们放在我的应用程序大战中还是我把它们放到tomcat库中? 我需要部署哪些jar子? log4j(包括slf4j和commons绑定),commons logging(slf4j-api-1.7.2.jar)和slf4j api(slf4j-api-1.7.2.jar)

Log4j2为什么要在log4j上使用它?

我一定错过了一些东西,但我现在已经看了几天了,但为什么你会在log4j上使用log4j2(性能除外)? 从我到目前为止看到的,log4j2被宣传为更简单的配置,但它实际上非常复杂(现在已经三天了,我仍然无法在我的主目录中写日志)。 自动配置对我来说根本不起作用(或者至少我不能使它工作),配置文件本身的结构要复杂得多,并且在运行时添加内容以帮助诊断似乎更难。 所以除了性能之外还有什么理由使用log4j2而不是原始的log4j?