问题标签 [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.
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 ”(如果我理解正确的话)。
所以我想知道是否有人对这个问题有任何想法。
谢谢
java - SBT运行scala和java的区别?
我正在尝试遵循 SBT 0.12.1 项目中的log4j2 配置教程。这是我的build.sbt:
我有两个独立的主要课程。第一个logtest.ScalaTest
在src/main/scala/logtest/ScalaTest.scala:
第二个logtest.JavaTest
在src/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 上。
xml - 如何在 Ubuntu 中指定默认的 log4j2 配置文件
我正在使用 log4j2 进行日志记录,但我只收到错误消息,我认为这是默认配置。我创建log4j2.xml
为:
并在文件中的CLASSPATH
变量中提到了它的路径。~/.bashrc
但它仍然没有选择这个 XML 文件。我是否只需要在运行时提及配置文件。~/.bashrc
文件内容:
hibernate - Log4j2 日志休眠参数绑定
有没有人有一个如何用 log4j2 记录休眠 sql 参数的例子?我知道如何使用 log4j 1.x 记录它们,但我无法使用 log4j 的 2.0 beta 3 版本(迄今为止的最新版本)来执行此操作。
谢谢。
java - Log4J2 - 如何在单元测试中禁用日志记录?
我在我的应用程序中使用 Log4J v2.0 Beta3 进行日志记录,并且在运行单元测试时生成了日志消息。我检查了 API 以了解将日志级别设置为 CRITICAL 之类的某种方式,但我找不到任何方法来更改记录器配置。
事实上,我在 log4j2 网站上读到了这个:
请注意,与 Log4j 1.x 不同,公共 Log4j 2 API 不公开添加、修改或删除附加程序和过滤器或以任何方式操作配置的方法。
所以就这么说了。从单元测试中禁用日志记录的正确方法是什么?
java - Log4j2 - 如何配置 JDBC Appender?
是否可以在 log4j v2 中配置 JDBC appender?
在 log4j v1.2.9 中这样做没有问题,但我在 log4j2 文档中没有找到任何关于此的信息。有人可以帮忙吗?
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 ”
java - 尝试创建 log4j2 rollingfileappender 时出错
我正在尝试从使用 FileAppender 切换到使用 log4j2 的 RollingFileAppender(在 beta3 和 beta4 jar 中都发生)。
我将其配置为:
在代码中,我试图以这种方式获取记录器:
但是当我运行它时出现了这个异常:
看起来好像正在读取配置文件并且正在尝试创建附加程序,但不确定我做错了什么。
我已经尝试剪切和粘贴其他人的 RollingFileAppender 配置而不进行任何修改,但我仍然收到上述错误。
谢谢。
java - log4j 2 - 配置问题
我正在尝试将 log4j 2.0 配置为报告日志。
我的配置保存为 log4j2.xml,这是它的内容:
它存在于项目的类路径中,我尝试将它放在许多其他目录中。
我在代码中创建了一个记录器,如下所示:
没有写入任何文件,也没有创建文件。当我调试代码时,我看到记录器是默认记录器(控制台)。
eclipse - 资源文件夹不在类路径上
我之前关于我遇到的问题的问题导致我更改了许多文件路径,以便找到导致 Maven 无法正常工作的答案(显然 Maven 不喜欢子源文件夹)。
我更改了项目文件夹以遵循Maven 的标准目录布局,并将 log4j2.xml 放在src/main/resources/META-INF下,问题又回来了。
由于某种原因,eclipse 中的文件夹不在类路径中。
我如何使它工作?
编辑:
我正在使用最新的 m2e 来管理项目的构建和包。
该项目(目前)由几个子项目组成。
父 pom 定义了不同的模块和 Java 的编译器版本。包含 META-INF 文件夹的模块的 pom 声明了几个依赖项,仅此而已。