问题标签 [log4j]
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.
java - 在 java 日志框架场景中找到方法
Java 有很多框架/API 可以帮助您在应用程序中进行日志记录:
- Java API 有 java.util.logging 包。
- Apache 的 Log4j。
- Apache 的公共日志记录。
- SLF4J(记录外观)。
- 杰洛。还有更多...
我一直使用 log4j 库,我发现它大部分时间都足够了,并且在我需要更多控制时可以扩展。
任何有多个框架经验的人都可以分享他的经验吗?从应用程序架构的角度来看,什么时候使用一个框架优于另一个框架?为什么我更喜欢一个而不是另一个?
谢谢
log4j - 我在哪里可以找到 log4j 服务器?
我想将不同的 log4j 日志集中到服务器上。我在哪里可以找到一个?
java - 如何为不同的 ant 任务提供自定义 log4j.xml?
我有一个构建文件,作为构建过程的一部分,它依赖于几个 taskdef。这些 taskdef 项(例如,webdoclet 和 jasper2)使用 log4j 作为记录器。理想情况下,我希望能够为每个提供不同的 log4j 配置文件,但至少,我希望能够指定使用哪个 log4j 配置文件。
我过去所做的是将包含我希望 taskdef 使用的 log4j.xml 的目录放在类路径的前面。例如:
我已经验证,事实上,“Build”目录位于类路径的前面,并且该目录中存在 log4j.xml。但是,当我在调试中使用 log4j 以详细模式运行 ant 时,我看到 log4j 正在选择当前工作目录中的 log4j.xml ,这不是我想要的。Log4j 似乎没有使用类路径来解析默认的 log4j.xml。
我正在使用 log4j 1.2.8(嵌入在更大的框架中,所以我无法升级它)并且其中一些任务定义似乎依赖于 commons-logging 1.0.3。构建过程使用 Sun Java 5。
如果我set ANT_OPTS=-Dlog4j.configuration=Build/log4j.xml
在运行 ant 之前,taskdefs 会正确加载所需的 log4j.xml。
将“Build”目录放在用于工作的 taskdef 的类路径的前面。我不知道发生了什么变化。如何恢复我可以控制的行为——在 build.xml 中——哪个 log4j 配置文件用于给定任务?除了设置 ANT_OPTS 和重新排列文件以将应用程序的 log4j.xml 移出当前工作目录以使 log4j 找到正确的 log4j.xml 文件之外,还有其他方法吗?
java - log4j 配置中子类别的覆盖级别
我的申请中有一些审核。每个审计事件都有自己的 log4j 类别,其名称以相同的字符串为前缀。
EG:一般审计类别名称:com.company.audit
网络登录类别名称:com.company.audit.web.login
创建一些东西:com.company.audit.api.create 等。
默认情况下应该记录一些类别,但有些不是=>
默认情况下,不应记录 INFO 第二类。至少我是这么想的,但它不起作用。任何帮助如何覆盖“子类别”上的日志记录级别。
注意:我不太可能更改整个命名方案
添加:
这是附加程序的配置:
java - log4j API 中 FileAppender 的疑问
我创建了 java 程序,它将处理进入特定文件夹的不同文件。在我的程序中,我需要为每个传入文件创建日志文件,以记录该文件的异常。我为此使用了以下代码。我面临的问题是它创建日志文件和日志记录异常的第一个文件。当第二个文件文件出现时,它会创建单独的日志文件并记录第二个文件的异常,同时将第二个文件的异常与第一个文件的异常一起记录在第一个文件的日志文件中。我不希望将第二个文件的异常附加到第一个文件的日志文件中。怎么做?
java - 3rd 方 jars 创建日志文件
所以我们今天遇到了一个有趣的问题。我们有一个使用一堆 3rd 方 jar 的 Java EE Web 应用程序。这包括休眠。
我们使用 SDK 附带的 Java logging api 进行日志记录。通常,我们在日志记录方面非常薄弱,但我们使用 log4j 创建它自己的日志文件的第 3 方 jar 之一遇到了这个问题。它不仅从自己的代码中记录语句,甚至开始为休眠代码编写调试,从而导致批处理作业立即记录 3 GB 的日志。
我有两个问题:
- 我需要解决这个日志记录问题(如果可能的话,我不希望拉出或修改 3rd 方 jar 中的 log4j 配置)。除了修改或拉出第 3 方 jar 中的 log4j 配置,或者通过我自己的 log4j 配置覆盖第 3 方 jar 中的配置之外,是否还有一种好方法可以做到这一点?我不喜欢这两个选项中的任何一个,但我想做最好的。
- 我想问一下,期望第 3 方图书馆愉快地注销是否符合规定?我认为这是一个糟糕的设计。我想了解社区对此的看法。
我想要第 3 方库记录错误。话虽如此,我认为这个第 3 方 jar 从它负责的包以外的包中记录 DEBUG 有点尴尬。例如,在我的情况下,这个第 3 方 jar 正在记录 Hibernate 调试,即使它甚至没有调用任何休眠方法。我们运行的批处理作业甚至没有调用这个 jar 中的 API。看起来让我自己的 log4j 配置覆盖其中的内容似乎是最好的方法。
grails - 在 Grails 中使用外部 log4j.properties 文件
在 Grails 中使用外部 log4j.properties 文件的最佳方式是什么?我想使用传统的 log4j.properties 格式而不是 log4j.groovy 样式的配置。
我也很好奇外部配置是否可以很好地与由grails war
war 文件创建并放入的 log4j.properties 文件配合使用。如果我从 Config.groovy 中删除 log4j 配置,log4j.properties 是否仍会放入 war 文件中?
java - 面临 log4j 错误日志和异常处理中的问题
我已经使用 log4j 使用 FileAppender 记录错误日志。问题是在以下情况下,它在日志文件中记录了两次相同的错误
情况1:
但是对于以下情况,它会记录一次错误。
案例2:
帮助我应该怎么做才能在日志文件中只记录一次错误,无论它在哪里。
hibernate - 如何使用 jboss-log4j.xml 文件为不同的应用程序在不同的日志文件中定向 Hibernate 记录器语句
我正在使用 JBOSS 4.2.2 服务器来部署多个 Web 应用程序。每个应用程序都使用 Hibernate,并且每个应用程序都有单独的日志文件和单独的附加程序。现在对于一个应用程序的 Hibernate 日志记录语句应该进入该特定应用程序的日志文件。有人知道如何配置 log4j.xml 文件来实现这一点吗?
java - 是否有专为 Java 5 或更高版本设计的 log4j 或 commons 日志扩展或其他日志框架?
Java 5 引入了许多可以使日志语句不那么混乱的特性,例如可变数量的参数和 printf。这可以减轻在记录某些内容时发生的所有消息构建代码,以及周围的if
.
例如,不要写:
我想写:
或类似的东西。
你知道一个日志框架或一个日志框架的扩展可以帮助解决这个问题吗?