Tag: logback

Log4j vs Logback:并发写入同一个日志?

我有几个在同一个tomcat上运行的Web应用程序。 我有两个问题: 1-通过搜索,我了解到当存在多个应用程序时,登录到同一文件可能会出现一些问题。 这是在同一个Web服务器上运行的多个应用程序的情况吗? 使用默认的stdout输出时,这也是正确的吗? 2-在Logback库中有一个谨慎的模式: 在谨慎模式下,即使存在可能在不同主机上运行的不同JVM中运行的其他FileAppender实例,FileAppender也会安全地写入指定文件。 prudent模式的默认值为false。 我想知道使用Logback是否仅适用于多个JVM,还是对同一Web服务器上运行的多个应用程序也有利? 如果没有,这方面的log4j是否相同? 谢谢

Logback:通过filter修改消息?

匹配filter后可以修改日志事件吗? 我有一个Web容器(Jersey),它在ERROR级别记录未捕获的exception。 但是,对于服务器(Jetty)抛出的某些exception(EofException),我想将它们记录在较低级别(INFO)。 我可以使用与exception类型(EofException)匹配的Logbackfilter完全删除这些消息。 但是我没有找到一种支持的方法来修改日志事件,例如,更改日志级别。

关于lilith的任何好的教程(日志查看器用于Logback)?

我正在使用slf4j + logback进行日志记录。 我正在寻找一个好的事件日志查看器(如Apache Chainsaw)。 Logback网站提到Lilith 。 莉莉丝网站不仅丑陋(在网站主页上这么说!),但也缺乏任何文件。 有没有关于如何开始使用Lilith的教程(可能我发现很难掌握,因为我从未使用过Apache Chainsaw,如果我阅读Chainsaw的教程会有帮助吗?)。 此外,是否有任何替代日志查看器用于更好的文档?

是否可以通过编程方式找到回溯日志文件?

将日志文件自动附加到支持电子邮件会很有用。 我可以以编程方式设置路径(如以编程方式设置Logback Appender路径 ),但我更愿意让用户通过logback.xml以熟悉的方式配置日志记录。 那么,我可以找到logback用于记录的文件吗?

Logback + Swing in small tool

我需要破解一个小工具。 它应该读取几个文件并转换它们。 现在,它在我的IDE中工作。 对于用户,我想添加一个简单显示日志输出的小UI。 你知道一个现成的Swing appender用于logback吗? 或者将System.out重定向到一个只有文本字段和“关闭”按钮的小UI的东西? PS:我不是在寻找Chainsaw或Jigsaw或Lilith。 我想在应用程序中显示日志消息。

每个级别定义1个回溯文件

我想定义一个能够执行以下操作的logback配置文件: 在debug.log中记录DEBUG(和更高版本)的东西 在info.log中记录INFO(和更高版本)的东西 也就是说,当我打电话时: logger.warn(“blah”); // Logs to both info.log and debug.log logger.debug(“bleh”); // Logs to debug.log only 可能吗 ? 我试过这样的东西,但似乎当logback遇到多个标签时,它只需要最后一个: ${LOGS_FOLDER}/info.log %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} – %msg%n ${LOGS_FOLDER}/debug.log %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} – %msg%n 这里,info.log包含调试级日志:( 请注意,我想在每个包上应用此行为。

如何使用logback防止日志轰炸?

我不确定“轰炸”一词是否合适。 通过轰炸,我的意思是使用相同的内容(消息和args)多次发生日志。 例如,拒绝服务附加可能会导致未经身份validation的用户尝试访问某些API的日志警告。 日志: [03-29 11:26:01.000] missing token [03-29 11:26:01.001] missing token [03-29 11:26:01.005] missing token … overall 100000 times 我试图解决的问题是防止日志非常大。 尺寸是个问题。 此外,由于重复消息的数量过多,可能无法看到其他重要消息。 我希望能够防止这样的日志轰炸,并有一些汇总的消息,如: [03-29 11:26:01.000] missing token [03-29 11:26:06.000] missing token [silenced. Overall 100000 times] 所以,我在这里寻找2个function: 沉默太重复的日志。 显示沉默日志的总结。 知道是否以及如何使用logback完成此操作? 也许另一个日志工具可以支持这个? 谢谢。

以编程方式创建logback logger

我有关于logback项目的问题。 我的要求是我必须动态创建日志属性。 让我通过一个例子解释一下。 我的项目创建了与外部系统的套接字通信,它可能有多个套接字。 对于每个套接字,我希望有不同的日志文件,其中包含读取和发送的消息。 为此,我以编程方式为套接字创建记录器。 问题是当我想基于logback.xml重新配置记录器时(通过添加scan =“true”或重新初始化logback),我创建的记录器变得无法使用。 我该如何解决这个问题,还是可以告诉我另一个解决方案? 这是我的配置文件(logback.xml) ${HOME_PATH}${MYAPP_LOG_FILE} ${HOME_PATH}${MYAPP_LOG_FILE}.${MYAPP_ROLLING_TEMPLATE} ${DEFAULT_PATTERN} 在这里你可以看到我如何以编程方式创建记录器(同样,我只对套接字日志这样做)。 public static Logger createLogger(String name) { ch.qos.logback.classic.Logger templateLogger = (ch.qos.logback.classic.Logger) LogUtil.getLogger(“com.myapp”); LoggerContext context = templateLogger.getLoggerContext(); String logDir = context.getProperty(“HOME_PATH”); PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setPattern(context.getProperty(“DEFAULT_PATTERN”)); encoder.setContext(context); DefaultTimeBasedFileNamingAndTriggeringPolicy timeBasedTriggeringPolicy = new DefaultTimeBasedFileNamingAndTriggeringPolicy(); timeBasedTriggeringPolicy.setContext(context); TimeBasedRollingPolicy timeBasedRollingPolicy = new TimeBasedRollingPolicy(); timeBasedRollingPolicy.setContext(context); timeBasedRollingPolicy.setFileNamePattern(logDir + name […]

Mac上的logback返回问号而不是单词

我刚开始使用logback来记录在glassfish3 AS上运行的Java项目,我注意到了一些奇怪的事情。 这段代码 LOG.error(“Вычисление {} уже произведено.”, calc); 如果我在Windows上运行我的应用程序,则生成正常的预期输出。 但如果我在Mac上的配置相同,我会有问号而不是文字,如下所示: 15:37:29.083 ERROR rggcTotalNachController – ?????????? [id=8871] ??? ???????????. 我的logback配置是: ../logs/logback.log %d{HH:mm:ss.SSS} %-5level %logger{35} – %msg%n 有人可以告诉我,我做错了什么?

Java:如何将原始JSON记录为JSON,并避免在使用logback / slf4j进行日志记录期间转义

我在JAX-RS应用程序中使用带有Logback的SLF4J …我想以这样的方式登录到JSON,即我的消息不再被编码,而是原始打印到日志文件中: 目前它看起来像这样: {“@timestamp”:1363834123012,”@message”:”{\”text\”:\”From MLK to Barack Ob…\n\”}” 但我希望有这个: {“@timestamp”:1363834123012,”@message”: { “text “: “From MLK to Barack Ob…\n\} 原因是我想再次解析JSON并希望避免数据的转义。 我写了一个自定义的logback编码器,但我发现无法避免转义。 我可以传递对象进行回溯并根据对象的类型更改设置吗? 编辑:我找到了一种方式 – 不完全优雅 – 按照SSCE的要求: 在我的申请中 // SLF4J Logger private static Logger logger = LoggerFactory.getLogger(MyClass.class); // A logback? Marker private Marker foo = MarkerFactory.getMarker(“foo”); // Jackson ObjectMapper() ObjectMapper mapper = new ObjectMapper(); // Log […]