问题标签 [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 投票
3 回答
7134 浏览

configuration - Log4j2的配置路径

我正在尝试在我的项目中采用 Log4j2。因为我的 Java 应用程序被打包在一个 JAR 文件中。我不想将“log4j2.xml”配置打包在 JAR 文件中。我正在尝试从“ http://logging.apache.org/log4j/2.x/manual/configuration.html ”了解配置文件的工作原理

但似乎没有关于更改 Log4j2 的配置文件路径的明确说明。

在谷歌搜索这个主题后,我发现类似“在可执行 JAR 中引用 log4j 配置文件”在可执行 JAR 中引用 log4j 配置文件,但是根据“ http://logging.apache.org/log4j/2,这个解决方案不再可用.x/manual/migration.html ”(如果我理解正确的话)。

所以我想知道是否有人对这个问题有任何想法。

谢谢

0 投票
1 回答
1583 浏览

java - SBT运行scala和java的区别?

我正在尝试遵循 SBT 0.12.1 项目中的log4j2 配置教程。这是我的build.sbt

我有两个独立的主要课程。第一个logtest.ScalaTestsrc/main/scala/logtest/ScalaTest.scala

第二个logtest.JavaTestsrc/main/java/logtest/JavaTest.java

如果我logtest.ScalaTest.main() 从 sbt 内部运行,我会得到我期望的输出,因为src/main/resources/log4j2.xml将根日志记录级别设置为跟踪:

但是,当我 logtest.JavaTest.main()从 sbt 内部运行时,我得到不同的输出

据我所知,ERROR StatusLogger Unable to ...这通常表明 log4j-core 不在我的类路径中。缺少 TRACE 消息似乎表明我的 log4j2.xml 设置也不在类路径上。如果我运行 Foo.main 与 LoggerTest.main,为什么类路径会有任何差异?还是有其他原因导致这种行为?

更新

我使用 SBT Assembly 构建了这个项目的胖 jar,并指定 logtest.JavaTest 为主类。从命令行运行它会产生正确的结果:

GitHub 示例

按照 Edmondo1984 的建议,我整理了一个完整的例子,放到了github 上

0 投票
1 回答
1504 浏览

xml - 如何在 Ubuntu 中指定默认的 log4j2 配置文件

我正在使用 log4j2 进行日志记录,但我只收到错误消息,我认为这是默认配置。我创建log4j2.xml为:

并在文件中的CLASSPATH变量中提到了它的路径。~/.bashrc但它仍然没有选择这个 XML 文件。我是否只需要在运行时提及配置文件。~/.bashrc文件内容:

0 投票
1 回答
4972 浏览

hibernate - Log4j2 日志休眠参数绑定

有没有人有一个如何用 log4j2 记录休眠 sql 参数的例子?我知道如何使用 log4j 1.x 记录它们,但我无法使用 log4j 的 2.0 beta 3 版本(迄今为止的最新版本)来执行此操作。

谢谢。

0 投票
3 回答
12017 浏览

java - Log4J2 - 如何在单元测试中禁用日志记录?

我在我的应用程序中使用 Log4J v2.0 Beta3 进行日志记录,并且在运行单元测试时生成了日志消息。我检查了 API 以了解将日志级别设置为 CRITICAL 之类的某种方式,但我找不到任何方法来更改记录器配置。

事实上,我在 log4j2 网站上读到了这个:

请注意,与 Log4j 1.x 不同,公共 Log4j 2 API 不公开添加、修改或删除附加程序和过滤器或以任何方式操作配置的方法。

所以就这么说了。从单元测试中禁用日志记录的正确方法是什么?

0 投票
1 回答
652 浏览

java - Log4j2 - 如何配置 JDBC Appender?

是否可以在 log4j v2 中配置 JDBC appender?


在 log4j v1.2.9 中这样做没有问题,但我在 log4j2 文档中没有找到任何关于此的信息。有人可以帮忙吗?

0 投票
1 回答
2537 浏览

java - Log4j2 自动配置

我在正确应用log4j2.xml自动配置时遇到问题,我认为这与我的文件夹排列有关。
我正在使用maven添加 log4j2 库并将我的项目安排如下:
- 一个项目包含所有“公共”类,由我的系统的服务器和客户端使用。
- 另一个“核心”项目 - 服务器端应用程序。
两个项目都使用相同的通用包层次结构(如com.foo.specific.package

在 Common 项目中,我定义了一个记录器包装器:

此外,Common 项目包含META-INF下的log4j2.xml文件(以及用于 Hibernate 的 persistence.xml 文件)。

在 Core 项目中运行示例代码(使用我编写的 LogWrapper 和一些 JPA voodoo)时,我仍然可以看到 INFO hibernate 日志,并且没有创建日志文件。我应该声明,在调试代码时,我可以看到获取的记录器被赋予了一些奇怪的值“ com.foo.core.persistence.PersistenceXMLTest:ERROR in sun.misc.Launcher$AppClassLoader@2f600492

0 投票
1 回答
22114 浏览

java - 尝试创建 log4j2 rollingfileappender 时出错

我正在尝试从使用 FileAppender 切换到使用 log4j2 的 RollingFileAppender(在 beta3 和 beta4 jar 中都发生)。

我将其配置为:

在代码中,我试图以这种方式获取记录器:

但是当我运行它时出现了这个异常:

看起来好像正在读取配置文件并且正在尝试创建附加程序,但不确定我做错了什么。

我已经尝试剪切和粘贴其他人的 RollingFileAppender 配置而不进行任何修改,但我仍然收到上述错误。

谢谢。

0 投票
12 回答
42003 浏览

java - log4j 2 - 配置问题

我正在尝试将 log4j 2.0 配置为报告日志。

我的配置保存为 log4j2.xml,这是它的内容:

它存在于项目的类路径中,我尝试将它放在许多其他目录中。

我在代码中创建了一个记录器,如下所示:

没有写入任何文件,也没有创建文件。当我调试代码时,我看到记录器是默认记录器(控制台)。

0 投票
2 回答
15050 浏览

eclipse - 资源文件夹不在类路径上

之前关于我遇到的问题的问题导致我更改了许多文件路径,以便找到导致 Maven 无法正常工作的答案(显然 Maven 不喜欢子源文件夹)。
我更改了项目文件夹以遵循Maven 的标准目录布局,并将 log4j2.xml 放在src/main/resources/META-INF下,问题又回来了。
由于某种原因,eclipse 中的文件夹不在类路径中。

我如何使它工作?

编辑:
我正在使用最新的 m2e 来管理项目的构建和包。
该项目(目前)由几个子项目组成。
父 pom 定义了不同的模块和 Java 的编译器版本。包含 META-INF 文件夹的模块的 pom 声明了几个依赖项,仅此而已。