log4j相关内容

在 log4j 中配置 RollingFileAppender

我正在开发一组网络服务,我们希望有一个每日轮换的日志. 我正在尝试从正在运行的 log4j extras 伴侣中获取 org.apache.log4j.rolling.RollingFileAppender,因为文档表明这最适合生产环境. 我有主 log4J 库 (log4j-1.2.15.jar) 和 log4j extras 库 (apache-log4j-extras-1.1.j ..
发布时间:2021-12-19 10:19:31 Java开发

Log4J:创建 Logger 实例的策略

我决定在一个新的 Java 项目中使用 Log4J 日志框架.我想知道我应该使用什么策略来创建/管理 Logger 实例以及为什么? 每个类一个 Logger 实例例如 class Foo {private static final Logger log = Logger.getLogger(Foo.class);} 每个线程一个 Logger 实例 每个应用程序一个 Logger 实 ..
发布时间:2021-12-19 10:18:02 Java开发

LOG4J:使用自定义 appender 修改记录的消息

出于安全原因,我需要查看我的应用程序中记录的每条消息,并可能在它进入日志文件之前对其进行修改.我想我可以编写一个自定义 appender(扩展 DailyRollingFileAppender)并覆盖 subAppend(LoggingEvent 事件).问题是,LoggingEvent 中的消息文本没有设置器,并且消息是私有属性.我可以使用修改后的消息创建一个新的 LoggingEvent,但 ..
发布时间:2021-12-19 10:15:43 Java开发

我在哪里可以在 JUnit 测试类中配置 log4j?

查看我写的最后一个JUnit测试用例,我在类构造函数中调用了log4j的BasicConfigurator.configure()方法.这适用于从 Eclipse 的“作为 JUnit 测试用例运行"命令运行单个类.但我意识到这是不正确的:我很确定我们的主要测试套件从一个进程运行所有这些类,因此 log4j 配置应该发生在更高的某个地方. 但有时我仍然需要自己运行一个测试用例,在这种情况下, ..
发布时间:2021-12-19 10:14:09 Java开发

如何将堆栈跟踪发送到 log4j?

假设你捕获一个异常并在标准输出(比如控制台)上得到以下内容,如果你执行 e.printStackTrace() : java.io.FileNotFoundException: so.txt在 java.io.FileInputStream.(FileInputStream.java)在 ExTest.readMyFile(ExTest.java:19)在 ExTest.main(ExTest. ..
发布时间:2021-12-19 10:13:52 Java开发

Java 日志与 Log4J

是否仍然值得将 log4j 库添加到 Java 5 项目中只是为了记录让我们说一些具有一些不错的翻转设置的文件的例外情况.还是标准的 util.logging 工具也能完成这项工作? 你怎么看? 解决方案 我想说你可能对 util.logging 满足你描述的需求没问题. 对于一个好的决策树,看看 Log4j vs java.util.logging 问题一:您是否预计需 ..
发布时间:2021-12-19 10:12:27 Java开发

log4j 日志记录层次结构顺序

log4j 日志的层次结构是什么? 调试信息警告错误致命的 哪一个提供了有助于解决问题的最高日志记录?任何人都可以提供从最高到最低记录的顺序或层次结构吗?谢谢! 解决方案 这张表可能对你有帮助: 沿着第一列向下,您将看到日志在每个级别中的工作方式.即对于 WARN,(FATAL、ERROR 和 WARN)将是可见的.对于OFF,什么都看不到. ..
发布时间:2021-12-19 10:11:49 其他开发

使用 log4j 登录到数据库

由于在 log4j javadoc是 警告:这个版本的 JDBCAppender 很可能在未来被完全取代.此外,它不会记录异常. 我应该怎么做才能登录到数据库? 解决方案 如果您正在寻找一个不仅可以工作,而且还支持连接池、维护和正确记录的数据库附加程序,那么请考虑使用 logback 的 DBAppender. 具有讽刺意味的是,javadocs 中关于在未来版本的 lo ..
发布时间:2021-12-19 10:10:50 其他开发

Log4j:如何配置最简单的文件日志记录?

我的故事: 我想做一个简单的东西,就像一个最简单的 log4j 记录器,它可以将行记录到文件中.我找到了几个具有某些功能的示例,但不是真正有效的基本、通用的示例,也没有解释每一行如何工作的示例. 问题: 谁能提供一个? 先决条件: 我已经知道将文件放在哪里,并且我已经配置了 log4j 并用于控制台日志记录. 现在我想登录一个文件,并在程序运行后从文件系统中找到 ..
发布时间:2021-12-19 10:09:49 Java开发

是否有技术原因更喜欢使用 logback 而不是 log4j?

新项目是否应该使用 logback 而不是 log4j 作为日志框架? 或者换句话说:'logback 是否比 log4j 更好(将 SLF4J-logback 的'特性'放在一边)?' 解决方案 您应该使用 SLF4J+Logback 进行日志记录. 它提供了一些简洁的功能,比如参数化消息和(与公共日志相反)映射诊断上下文(MDC,javadoc、文档). 使用 SLF ..
发布时间:2021-12-19 10:09:21 Java开发

如何自定义 log4j2 RollingFileAppender?

我们使用 log4j 1.2.x 登录我们的产品,并希望在不久的将来迁移到 log4j 2.x.我们已实现的功能之一是在生成的每个新滚动日志文件上记录系统信息和其他重要参数.我们在 log4j 1.2.x 中实现的方式是我们扩展了 log4j 的 RollingFileAppender 类并覆盖了 rollOver() 方法,下面是实现的部分片段 @Override公共无效翻转(){super. ..
发布时间:2021-12-19 10:08:16 Java开发

将 System.out 和 System.err 重定向到 slf4j

我需要将 System.out/err.println 输出重定向到 slf4j. 我知道这不是正确记录日志的方法,但有一个外部库,可以记录到 System.out 解决方案 您可以使用 sysout-over-slf4j. sysout-over-slf4j 模块允许用户将所有对 System.out 和 System.err 的调用重定向到 SLF4J 定义的记录器,其中包 ..
发布时间:2021-12-19 10:07:36 Java开发

将 slf4j 与 log4j2 一起使用是否值得

我无法决定是否将 slf4j 与 log4j2 一起使用.根据在线帖子,它看起来不会对性能造成任何影响,但它真的是必需的. 这些点也有利于 log4j2: SLF4J 强制您的应用程序记录字符串.如果您想记录文本,Log4j 2 API 支持记录任何 CharSequence,但也支持按原样记录任何对象. Log4j 2 API 支持记录 Message 对象、Java 8 lamb ..
发布时间:2021-12-19 10:02:39 Java开发

通过 JVM 参数进行 log4j 配置?

我必须设置/传递哪些变量作为 JVM 的参数才能使 log4j 正常运行?正确地我的意思是不要抱怨并打印到控制台.能不能看个典型的例子? 注意:我需要避免在应用程序中创建 log4j.properties 文件. 解决方案 你有 log4j 配置文件吗?只需使用 引用它 -Dlog4j.configuration={文件路径} 其中 {path to file} 应该以 fil ..
发布时间:2021-12-19 10:00:16 Java开发

动态更改 log4j 日志级别

动态更改 log4j 日志级别的不同方法有哪些,这样我就不必重新部署应用程序了.在这些情况下,更改会是永久性的吗? 解决方案 更改日志级别很简单;修改配置的其他部分将提供更深入的方法. LogManager.getRootLogger().setLevel(Level.DEBUG); 更改在 Logger 的整个生命周期中都是永久性的.重新初始化时,配置将被读取并使用,因为在运行时设置 ..
发布时间:2021-12-19 09:57:20 Java开发

解析一个 log4j 日志文件

我们有几个使用 log4j 进行日志记录的应用程序.我需要让 log4j 解析器正常工作,以便我们可以组合多个日志文件并对它们运行自动分析.我不想重新发明轮子,所以有人可以指出我一个体面的预先存在的解析器吗?如果有帮助,我确实有 log4j 转换模式. 如果没有,我将不得不自己动手. 解决方案 我没有意识到 Log4J 附带了一个 XML 附加程序. 解决方案是:在日志配置文件 ..
发布时间:2021-12-13 00:07:37 其他开发

是否需要进行 if(log.isDebugEnabled()) { ... } 检查?

是否需要做一个显式的 if(log.isDebugEnabled()) { ... } 检查? 我的意思是我看到一些帖子提到 log.debug("something") 在执行日志记录之前会进行隐式调用以查看是否已启用调试模式日志记录.我是否遗漏了某些东西,或者在使用它之前是否需要执行一个中间步骤? 谢谢! log.debug("ResultSet rs 是从 OracleType ..
发布时间:2021-12-12 13:35:03 Java开发