问题标签 [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.

0 投票
6 回答
4792 浏览

java - Deserialize in a different language

The log4j network adapter sends events as a serialised java object. I would like to be able to capture this object and deserialise it in a different language (python). Is this possible?

NOTE The network capturing is easy; its just a TCP socket and reading in a stream. The difficulty is the deserialising part

0 投票
7 回答
79067 浏览

java - Java 日志记录与 Log4J

将 log4j 库添加到 Java 5 项目中是否仍然值得只是为了记录让我们说一些具有一些不错的翻转设置的文件的异常。还是标准的 util.logging 工具也能完成这项工作?

你怎么看?

0 投票
2 回答
1532 浏览

java - 自定义 log4j 适配器

我想构建自己的自定义 log4j(网络)适配器来解决我在此处发布的问题。

我查看了 log4j 上的文档,但我看不到开发人员在哪里/是否进入了如何执行此操作。

谁能指出我正确的开始方向?

0 投票
9 回答
19409 浏览

java - 应该将 Log4J 记录器声明为瞬态吗?

我正在使用带有 Log4J 的 Java 1.4。

我的一些代码涉及序列化和反序列化值对象 (POJO)。

我的每个 POJO 都声明了一个记录器

序列化程序抱怨 org.apache.log4j.Logger 不是可序列化的。

我应该使用

反而?

0 投票
8 回答
5501 浏览

java - 记录多线程应用程序中的活动

我有一个 Java 分层应用程序,它有一个从不同点调用的多线程数据访问层。对该层的一次调用可能会产生多个线程来并行处理对 DB 的请求。

我正在寻找的是一个日志工具,它允许我定义由各种线程组成的“活动”。因此,数据访问层中的相同方法应根据其调用者记录不同的输出。对不同输出进行分组以总结操作总成本的能力也很重要。

虽然应用程序是 Java 语言,但语言不是限制;我需要的是设计指南,以便最终实现它。我们目前正在使用 log4j,但无法从中获得这种行为。

0 投票
10 回答
46082 浏览

logging - 从多个服务器聚合多个日志文件的最佳方法

我需要一种简单的方法来监视分布在多个 HP-UX 服务器上的多个文本日志文件。它们是来自多个分布式遗留系统的文本和 XML 日志文件的混合体。目前我们只是通过 ssh 连接到服务器并使用tail -fgrep,但是当您有很多日志要跟踪时,这并不能扩展。

由于日志的格式不同,并且只是文件夹中的文件(当它们达到一定大小时自动旋转),我需要远程收集它们并以不同的方式解析每个文件。

我最初的想法是创建一个简单的守护进程,我可以在每台服务器上运行它,使用针对每种文件类型的自定义文件阅读器将其解析为可以通过套接字通过网络导出的通用格式。另一个本地运行的查看器程序将连接到这些套接字,并在一些简单的选项卡式 GUI 中显示已解析的日志或聚合到控制台。

如果我要以这种方式实现它,我应该尝试转换成什么日志格式?

还有其他更简单的方法吗?我应该尝试将日志文件转换为 log4j 格式以与Chainsaw一起使用,还是有更好的日志查看器可以连接到远程套接字?我可以按照另一个日志问题中的建议使用BareTail吗?这不是一个大规模分布式系统,更改所有应用程序的当前日志记录实现以使用 UDP 广播或将消息放在 JMS 队列上不是一种选择。

0 投票
10 回答
34227 浏览

java - log4j 日志文件名?

我们有几个同时运行的作业,它们必须为 log4j 使用相同的配置信息。他们都使用相同的附加程序将日志转储到一个文件中。有没有办法让每个作业动态命名其日志文件,以便它们保持独立?

谢谢
汤姆

0 投票
6 回答
73256 浏览

java - 为什么无论配置如何,根记录器都会收集所有日志类型?

我遇到的问题是,即使我在根标记中将级别指定为 ERROR,指定的附加程序也会将所有级别(调试、信息、警告)记录到文件中,而不管设置如何。我不是 Log4j 专家,因此不胜感激。

我已经检查了 log4j.properties 的类路径(没有),除了 log4j.xml。

这是 log4j.xml 文件:

如果我用另一个记录器替换根,那么指定的附加程序根本不会记录任何内容。

0 投票
2 回答
32977 浏览

java - 如何配置 Tomcat JULI 日志记录以滚动日志文件?

我有几个使用 java.util.logging 的 webapps。Tomcat 5.5 被配置为使用 Juli 记录器,因此每个 webapp 都有自己的日志文件。问题是 Juli 没有最大文件大小和文件数的属性。使用 Juli,文件将无限增长,并且只会在一天结束时滚动。此外,保留无限数量的日志文件。

您可以在此页面上看到 FileHandler 属性 - Apache Tomcat 5.5 文档
没有限制或计数属性(以下几行什么都不做)
org.apache.juli.FileHandler.limit=102400
org.apache.juli.FileHandler.count=5

在不更改 webapps 的情况下,有没有办法为每个应用程序获取唯一的日志文件,并在日志文件大小上有某种类型的界限?

更新: 我找到的解决方案根本不使用 Juli 记录器! java.util.logging.FileHandler.limit=102400
java.util.logging.FileHandler.count=5

谢谢,

格雷格

0 投票
4 回答
5211 浏览

java - 使用 Quartz 工作线程拆分 log4j 输出

我正在开发一个应用程序,该应用程序由一个基于 Quartz 的整体调度程序和使用 CronTriggers 运行的“CycledJob”组成。该应用程序的目的是根据来源国家/地区处理来自不同电子邮件收件箱的输入。

根据它来自的国家(即美国、英国、法国等),应用程序会触发一个工作线程来运行每个国家的处理周期,因此会有一个英国工作线程,一个用于美国、法国等。将输出格式化为 log4j 时,我使用线程参数,因此它会发出 [ApplicationName_Worker-1]、[ApplicationName_Worker-2] 等。尽我所能,我找不到命名线程的方法,因为它们'重新从 Quartz 的线程池中退出。尽管我可能会扩展 Quartz,但我想制定一个不同的解决方案,而不是弄乱标准库。

问题出在:使用 log4j 时,我希望将所有日志项从美国线程输出到仅限美国的文件,对于每个国家线程也是如此。我不在乎他们是否留在一个统一的 ConsoleAppender 中,FileAppender 拆分就是我在这里所追求的。我已经知道如何指定多个文件附加程序等,我的问题是我无法根据国家/地区进行区分。应用程序中有 20 多个类可以在执行链上,其中很少有我想通过每个方法传递额外的“上下文”参数的知识来负担......我已经考虑过扩展一个策略模式log4j 包装类,但除非我可以让链中的每个类都知道它在哪个线程上来参数化记录器调用,否则这似乎是不可能的。

所以这里有一个问题:什么是建议的方法来允许应用程序中的许多从属类,每个从属类都用于每个不同的线程来处理输入,知道它们在记录时它们在特定国家线程的上下文中?

祝你好运,请提出澄清问题!我希望有人能够帮助我找到一个体面的方法来解决这个问题。欢迎所有建议。