问题标签 [java.util.logging]

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 投票
5 回答
3280 浏览

java - 管理分布在多台机器上的大量日志文件

我们已经开始使用第三方平台(GigaSpaces)来帮助我们进行分布式计算。我们现在试图解决的主要问题之一是如何在这个分布式环境中管理我们的日志文件。我们目前有以下设置。

我们的平台分布在 8 台机器上。在每台机器上,我们有 12-15 个进程使用 java.util.logging 记录到单独的日志文件中。在这个平台之上,我们有自己的应用程序,它们使用 log4j 并记录到单独的文件。我们还将标准输出重定向到一个单独的文件以捕获线程转储和类似情况。

这会产生大约 200 个不同的日志文件。

到目前为止,我们还没有工具可以帮助管理这些文件。在以下情况下,这会让我们非常头疼。

  • 当我们事先不知道问题发生在哪个进程时进行故障排除。在这种情况下,我们当前使用 ssh 登录到每台机器并开始使用grep.

  • 尝试通过定期检查日志是否有任何异常来积极主动。less在这种情况下,我们目前还登录到所有机器并使用和查看不同的日志tail

  • 设置警报。我们正在寻求对超过阈值的事件设置警报。这看起来很痛苦,需要检查 200 个日志文件。

今天,我们每秒只有大约 5 个日志事件,但随着我们将越来越多的代码迁移到新平台,这将会增加。

我想向社区提出以下问题。

  • 您如何处理分布在通过不同框架记录的多台机器上的许多日志文件的类似情况?
  • 你为什么选择那个特定的解决方案?
  • 你的解决方案是如何奏效的?你觉得什么是好的,你觉得什么是坏的?

非常感谢。

更新

我们最终评估了 Splunk 的试用版。我们对它的工作方式非常满意,并决定购买它。易于设置,快速搜索和大量的技术倾向的功能。我可以推荐任何有类似情况的人来检查一下。

0 投票
5 回答
62637 浏览

java - 使用 jdk 进行 slf4j 日志记录 – 如何启用调试?

默认情况下,slf4j 与 jdk ( slf4j-jdk14-1.6.1.jar ) 一起使用时,不会记录调试消息。如何启用它们?

我在官方文档、网络或此处都找不到有关如何启用它的信息。

我找到了一些关于(虽然失败)在 %JDK_HOME%/lib 中创建文件并在配置文件中定义级别的信息。但是,我想在编译/运行时定义级别,这样我就可以从具有不同日志级别的 IDE 运行和调试我的应用程序。

是不是有一些我可以设置的环境变量或VM arg?

0 投票
1 回答
9861 浏览

java - 如何将 java.util.logging 重定向到文件?

我有一个使用外部库的 java 程序。主程序用于log4j记录其消息,库使用java.util.logging.

我的问题是来自外部库和主程序的日志消息混合在控制台中。

我想将所有日志消息从外部库重定向到一个文件。logging.properties我试图用一个文件来做到这一点:

该文件初始化为:

不幸的是,来自外部库的日志消息不断出现在控制台中。我应该使用类似的东西slf4j来拦截来自的日志消息java.util.logging吗?

感谢您的时间。

0 投票
4 回答
5528 浏览

java - 以编程方式关闭 Jersey 日志记录

在我的输出中,我有来自泽西岛的 JUL 记录消息,如下所示

以编程方式,我想关闭它们,所以我尝试了

或者

但这不起作用。

有趣的是,这个全局配置有效:

或者

为什么?

0 投票
2 回答
1568 浏览

java - 获取当前类/bean 的 LogLevel

从我的班级登录时,我使用以下方法:

我注意到,无论应用什么日志级别,所有日志语句都会始终执行。我不想在不需要时执行与调试相关的语句(这里的性能是一个问题)。

所以我正在寻找这样的东西:

如何获取该类当前使用的 LogLevel?

0 投票
1 回答
1330 浏览

intellij-idea - java.util.logging 使用 ConsoleHandler 并且在 IntelliJ IDEA 9 或 Mac 终端窗口中看不到 system.err 输出

我一直在尝试运行基于 GroovyTestCase 的集成测试。根据API 文档,它有一个内置的日志属性。我最初试图在测试运行时记录一条信息消息,使用这个站点作为参考。我很惊讶我的日志消息从未在 IntelliJ9 的控制台中显示,因此我尝试从终端窗口在我的 Mac 上运行我的集成测试。即使我的代码已将日志记录级别设置为 ALL 并且我正在使用 ConsoleHandler,我仍然没有看到任何输出。

我几乎放弃了,但注意到终端窗口中有一条消息,说我失败的测试在 target/test-reports 文件夹中。

奇怪的是,我什至在 IntelliJ9 的 Project Explorer 窗口中都看不到目标文件夹,无论我采用何种视图作为选项。所以我想这是我想解决的一个问题。

无论如何,我追踪了错误报告,当我深入研究 HTML 报告的失败测试时,有一个指向 system.err 的链接,瞧。这是我一直期待看到的输出!所以第二部分是,为了在我的 IDE 中看到这个输出,我需要做某种 UNIX system.err 重定向到 system.out 吗?

有任何想法吗?

我想出了如何显示目标文件夹...项目结构->模块->排除的文件夹在排除部分(文件夹左侧)下对目标单击x您可以通过项目结构->模块再次将其删除->单击“ target' 文件夹,然后是文件夹列表上方的排除按钮

0 投票
3 回答
1652 浏览

java - 用 Java 登录

我通过执行以下代码在java中创建一个记录器:

如果我使用这个记录器,它不仅会写入 System.err,还会写入文件。最终我想配置记录器以允许它写入:'

  1. System.err 和 File
  2. System.err 和 File 都没有
  3. 只是 System.err
  4. 只需归档

我知道调用logger.setLevel(Level.OFF)会关闭所有日志记录,但我不确定如何为上面的列表执行此操作?是通过Level类完成的吗?任何想法或建议将不胜感激。

编辑:感谢您的回复。我用这段代码解决了它:

谢谢您的帮助

0 投票
3 回答
9878 浏览

java - Hibernate:如何调整默认的日志记录级别(SJF4J 和 JDK 1.4 记录器)?

我有一个 JavaSE/Hibernate 测试应用程序(基于 shell)。我将以下 JAR 放入项目的 lib 目录中:

如您所见,我将 SLF4J 与 JDK 1.4 记录器一起使用。当我从 shell 运行我的测试应用程序时,Hibernate 非常冗长,因为它默认设置为 INFO 级别:

如何调整休眠日志级别,比如警告?

例如,EclipseLink 让您通过属性 (persistence.xml) 指定级别:

在 Hibernate 中是否有等价物?

0 投票
1 回答
3448 浏览

java - log4j 和 java.util.logging 有什么区别

哪个最适合获取登录其帐户的用户的日志文件?用一个小例子来解释......感谢您的时间......

0 投票
3 回答
6346 浏览

java - 将 Logging 信息存储到 oracle 数据库

我目前已经实现了一个 java swing 应用程序。在该应用程序中,我使用 java.util.logging 将内容登录到文本文件。但是由于文件很大,所以很难通过文本文件。

所以我正在考虑将日志信息存储到一个 oracle 数据库(我用于应用程序)并提供访问该表的 swing 接口。因此,我将能够在该表中搜索某些日志记录级别,例如 INFO 和 SEVERE。有没有办法使用 java util 包或使用 Log4j 来做到这一点。请帮忙