草庐IT

java - 使用 log4j2 将 System.out 写入文件

是否可以像“旧”log4j那样将System.out(OutputStream)直接写入日志文件?我只找到log4j的解决方案,没有找到log4j2感谢您的帮助! 最佳答案 使用log4j2-iostreams模块非常容易。假设我们要将所有消息从System.out发送到名称为system.out且日志级别为INFO的记录器:System.setOut(IoBuilder.forLogger(LogManager.getLogger("system.out")).setLevel(Level.INFO).buildPrintStre

java - 如何让 GELFJ appender 在 log4j 中工作?

我需要让我的Java应用程序将日志记录写入Graylog2服务器。该应用程序使用log4j配置。我曾尝试将日志记录写入Graylog2服务器的几件事,我开始工作的是直接向服务器发送测试消息,如图所示here(第一个例子)。然而,当我编写一个appender并将其附加到根记录器时,我总是在第一次触发日志事件时收到此错误消息:log4j:ERROR无法发送GELF消息Graylog2服务器端什么也不会发生。我尝试开始工作的appender:有人知道如何让它运行吗?非常感谢任何帮助! 最佳答案 这项工作对我有用:在你的mavenpom文件

java - 如何统一来自 java 堆栈的日志记录格式

使用从maven开始的Jetty网络服务器,其中包括iBatis、Spring、Jersey,一些这样那样,我得到了多种格式的日志输出。一些来自maven:[INFO][war:war][INFO]Explodingwebapp...一些来自Jetty:2009-03-2521:01:27.781::INFO:jetty-6.1.152009-03-2521:01:28.218:/example:INFO:InitializingSpringrootWebApplicationContext一些来自Spring:INFOContextLoader-RootWebApplicationC

java - 使用 If 子句包围 Logger 以避免冗余的 String 构造

我得到了在登录java时使用此语法的建议:if(logger.isLoggable(Log.FINE)){logger.fine("bla"+"bla"+"bla");}这样做的原因是为了避免在日志记录级别低于“FINE”时重复构造参数字符串。(在上面的示例中-5个冗余字符串对象。(“bla”X3、“blabla”和“blablabla”)。我想听听其他人对此做了什么,或者您是否认为这有必要。谢谢!! 最佳答案 一些较新的日志记录框架允许您将参数指定为参数,如果没有日志记录则不会评估它们。我找到的例子是LogBack,它是Log4j

java - 是否可以将 show_sql 的所有输出放在一个单独的文件中?

在本地开发或运行使用hibernate的springmvc应用程序时,如果我能将所有sql的输出放到一个单独的文件中,那就太好了。这可能吗?我知道有一个hibernate属性show_sql但我相信它会与所有其他log4j日志记录信息混在一起,对吗? 最佳答案 将org.hibernate.SQL类别设置为DEBUG并为其使用特定的附加程序。另见3.5.Logging 关于java-是否可以将show_sql的所有输出放在一个单独的文件中?,我们在StackOverflow上找到一个类似

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

哪个最适合获取登录其帐户的用户的日志文件?用一个小例子解释......感谢你的时间...... 最佳答案 Log4j是Java事实上的标准日志记录库。Java.util.logging是Java中内置的日志记录机制,但这并不能使它成为最强大的...使用Log4j及其MDC.这样,您可以像这样轻松地登录不同的用户帐户:MDC.put(user);logger.log("Deletedsomethingimportant!");这样,如果日志配置正确,在您的日志输出中您将看到如下内容:[userAlice]Deletedsomethin

java - 使用 log4j2 时日志文件为空

我在我的项目中使用log4j2是这样的:logger.log(Level.ERROR,this.logData);我的配置文件是这样的:%d%p%c{1.}[%t]%m%ex%n它创建了我的文件,我向其中记录了一些内容,但它仍然是空的。当我试图删除这个文件时,操作系统告诉我它正在使用中(如果应用程序当前正在运行),但即使我停止应用程序,文件仍然是空的。那么我应该更改哪些设置才能使其正常工作? 最佳答案 我怀疑异步日志没有正确打开。从beta-9开始,无法在XML配置中打开异步记录器,您必须将系统属性Log4jContextSelec

java - Log4j2 的 FailoverAppender 错误 : appender Failover has no parameter that matches element Failovers

当我使用log4j2.1编译我的spring3.2.9web应用程序时,这个错误出现在控制台中:2015-02-0212:08:25,213ERRORappenderFailoverhasnoparameterthatmatcheselementFailovers我的理解是元素“Failover”中不存在元素“Failover”,对吗?为什么会这样?我看不出有什么问题,因为我有sameconfigurationasthelog4j2manual.我的log4j2.xml中有这个配置:[%d{ISO8601}]%c[%C{1}]-%p:%m%n[%d{ISO8601}][%c]-%p:%

java - 包属性未检测到 Log4j2 (2.1) 自定义插件

我已将我的log4j2自定义插件打包到一个单独的jar中(仅包含插件类)并将其放入应用程序类路径中。但它没有被检测到。我用谷歌搜索发现这是一个错误-不再使用“packages”参数。还有一些链接建议了一些替代方案,其中mavenpom.xml和log4j2插件dat文件出现在上下文中。问题是我不熟悉maven,也不知道dat文件是如何生成的。我只知道它包含在log4j-2.1-core.jar中,其中现有的log4j2插件在pom.xml中定义。有人可以建议我如何让我的自定义插件工作吗?我经历了这个-Log4j2customplugins-annotationprocessingwit

java - 事件日志解析器的适当设计模式?

从事一个解析事件日志的项目,然后根据这些事件的属性更新模型。我一直很懒于“完成它”,而更关心前期优化、精益代码和适当的设计模式。主要是自学实验。我感兴趣的是更有经验的设计师认为哪些模式是相关的,或者什么类型的伪代码对象架构是最好的、最容易维护的等等。单个日志中可以有500,000个事件,大约有60种类型的事件,所有这些都共享大约7个基本属性,然后根据事件类型具有0到15个附加属性。事件类型是日志文件每一行中的第二个属性。所以我已经尝试了一个非常丑陋的命令式解析器,它逐行遍历日志,然后逐行处理事件。然后我尝试了一个使用“nextEvent”模式的词法规范,它在循环中被调用并被处理。然后我