问题标签 [log4j2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
10959 浏览

java - 加载 XML 配置文件时出现 Log4j2 错误

我正在尝试为嵌入在我的 Java 应用程序中的 Log4j2 使用 XML 配置文件,但它不起作用。

编码:

错误:

线程“主”java.lang.ClassCastException 中的异常:org.apache.logging.log4j.core.config.XMLConfiguration 无法在 in.gunbound.prelauncher.server 中转换为 org.apache.logging.log4j.core.config.ConfigurationFactory .Main.main(Main.java:62)

0 投票
1 回答
3419 浏览

log4j2 - netbeans glassfish 休眠 log4j2

我有一个使用 glassfish 3.1 服务器进行测试的简单 Netbeans 7.1.2 (NON MAVEN) 项目。

我创建了一个 log4j2.xml 文件并将其放置在类路径中

该项目使用休眠将数据从 Web 服务存储到数据库。

但是我无法记录任何内容。我可以在 Netbeans IDE 中看到休眠日志,但看不到文件系统文件上创建的日志。

调用 Web 服务时出现此错误

有人可以帮忙或给我一些建议我用谷歌搜索和stackoverflow但没有机会。

保罗

0 投票
4 回答
49649 浏览

java - Log4J2 - 在运行时分配文件附加程序文件名

我在类路径中有一个 log4j2.xml 配置文件。其中一个附加程序是文件附加程序,我想在运行时在 Java 应用程序中设置目标文件名。

根据文档,我应该能够在 log4j2.xml 文件中使用双“$”和上下文前缀:

其中“sys”前缀表示配置器将在系统属性中查找属性“logFilename”。所以在应用程序中,我调用(相当早):

我还在 xml 文件中打开了 log4j2 的自动重新配置:

不幸的是,这没有任何效果,并且永远不会创建日志文件。一些 log4j2 状态输出如下:

2013-02-13 15:36:37,574 调试在类 org.apache.logging.log4j.core.appender.FileAppender 上为元素文件调用 createAppender 参数(fileName="${sys:logFilename}",append="null" ,locking="null",name="MyFile",immediateFlush="null",suppressExceptions="null",bufferedIO="null",PatternLayout(%-4r %d{yyyy-MM-dd/HH:mm:ss .SSS/zzz} [%t] %-5level %logger{36} - %msg%n), null)

2013-02-13 15:36:37,576 调试启动 FileManager ${sys:logFilename}

如何在运行时设置 File Appender 中的“fileName”值? 或者,我怎样才能在运行时简单地将新的 File Appender 添加到根记录器?在 Log4j 2.0 中,大部分用于更改配置的 API 都是隐藏的。

0 投票
0 回答
326 浏览

logging - Migrating custom log4j levels from version 1.x to 2.0

Our application (Spring MVC) uses log4j 1.4 and has a custom log4J level (ALERT which extends Level). Now that we are migrating to log4j 2, how can I migrate the custom ALERT level to log4j 2?.

Per documentation, LoggerConfigs will be assigned a Log Level. The set of possible levels includes (TRACE, DEBUG, INFO, WARN, ERROR and FATAL). Note that in Log4j 2, the Level is an Enum and cannot be sub-classed. Users who desire more granularity are encouraged to use Markers instead.

I am not sure how a Marker can replace a custom Log4J level. Any thoughts?

0 投票
1 回答
1740 浏览

java - 在 Websphere 集群环境中分离 Log4j 日志

我们正在使用 Log4j 登录我们的 Web 应用程序。我们的应用程序部署在 Websphere 集群环境中。

例如:

一台主机有两个不同的 JVM,其中部署了 Web 应用程序。

App-1的Log4j 配置为:

但这里的问题是不同的 JVM 日志被写入同一个文件/home/applogs/app-1.log

有没有办法为集群环境配置单独的日志文件?如果我们在 1 个 JVM 或 2 个 JVM 或 3 个 JVM 等中部署应用程序,那么我的 Log4j 配置不应该更新吗?

0 投票
3 回答
394 浏览

java - 如何在运行时创建 RollingFileAppender(Web 应用程序侦听器)并替换配置 xml 中定义的 ConsoleAppender

我正在使用 log4j2 beta 4。log4j2.xml 设置正确,一切正常。但我需要在运行时更改附加程序。从 xml 中定义的控制台到具有特定文件位置的 RollingFileAppender。

我在文档方面苦苦挣扎,却一无所获。有人解决了这个问题吗?

0 投票
2 回答
3904 浏览

netbeans - 使用 NetBeans 时看不到 Log4j2.xml 文件

我在运行 Java 1.7.0_13/64 的 Windows7/64 机器上看到我的 logj2.xml 时遇到问题。我正在尝试通过调试器使用 NetBeans/64 7.2.1 IDE 运行应用程序。

log4j2.xml 位于我的 r:\ 目录中。(用户)类路径是“.;r:\”。显然没有看到,因为当我在调试器中查看 Logger 的“config.config.name”时,它给了我“Default”的值。此外,我无法在我的机器的任何驱动器上的任何位置找到 log4j2.xml 文件中指定的文件。我还在我的机器上查找了包含“默认”一词的任何新文件,但找不到任何最新的文件。

所以我怀疑我做错了两件事之一:

1)错误地设置了我的类路径。2) 将我的 log4j2.xml 文件错误地放在一起。

任何帮助,将不胜感激。我的钥匙因为用前额敲打而变得粘稠。

这是配置文件:

0 投票
1 回答
355 浏览

java - 如何在 log4j 2 中添加/减去日期?

我可以在 filePattern 中执行日期加法和/或减法吗?? 截至目前,翻转时生成的文件具有当前日期。我想从中减去一天。怎么做到呢 ?

0 投票
1 回答
6531 浏览

java - 如何从资源加载 Log4j2 配置文件

我想知道如何从嵌入在我的应用程序中的资源加载 Log4j 的配置文件?

也就是说,我的计算机本身没有文件,该文件嵌入在我的应用程序中,我想加载它。

以下是我使用的代码:

但结果是这个例外:

线程“主”java.lang.ClassCastException 中的异常:org.apache.logging.log4j.core.config.XMLConfiguration 无法在 in.gunbound.prelauncher.server 中转换为 org.apache.logging.log4j.core.config.ConfigurationFactory .Main.main(Main.java:62)

我不想让用户看到设置文件,所以我遇到了这个问题,你知道吗?

有人可以帮我吗?

谢谢。

0 投票
3 回答
24771 浏览

java - 如何一起使用 log4j 2.0 和 slf4j 和 Commons Logging

我目前正在启动一个新的 Webapp(在 tomcat 6 上运行)我有使用 slf4j 的组件和使用 commons 日志记录的组件由于多种原因我计划使用 log4j 2.0 作为日志实现(主要用于附加程序:SocketAppender 和 SyslogAppender,但也因为在不丢失日志事件的情况下提升配置重新加载)

现在我的问题是: - 我将新类编程到哪个接口?loag4j 还是 slf4j?甚至公共记录?

  • 部署 jar 的首选方式是什么?将它们放入我的应用程序战争中还是将它们放入 tomcat 库中?

  • 我需要部署什么罐子?log4j(包括 slf4j 和 commons 绑定)、commons logging (slf4j-api-1.7.2.jar) 和 slf4j api (slf4j-api-1.7.2.jar)