当前位置: 首页 > 知识库问答 >
问题:

如何使用Logback登录到同一个类中的两个不同文件?

和光启
2023-03-14

我们的Java应用程序在Logback上使用SLF4J来记录错误消息。在我们的回复中。xml,我们为错误日志定义了一个appender,以及一个指定包层次结构顶层的记录器。

我们正在将记录数据的功能添加到不同的日志文件中。我创建了一个类来处理这个日志记录,我向logback.xml添加了一个新的appender和一个新的logger。新的logger指定了我创建的新类的完全限定包名称(以及addtivity="false"),因此只有该特定类在调用SLF4J记录器时才会写入新的日志文件。

然后我意识到,如果新类由于某种原因未能写入新日志文件,我应该让它将错误消息记录到我们的原始错误日志文件中。但是当它的SLF4J记录器写入新日志文件时,该类如何写入原始错误日志文件呢?该类有没有办法获得记录器对原始错误日志文件的句柄?

共有1个答案

公羊向荣
2023-03-14

使新类具有两个记录器可能是最容易的:一个是它自己的记录器,另一个是用于记录错误的记录器。不禁止一个类同时使用两个记录器(但目的不同):

public class NewClass {
    private static final Logger logger = LoggerFactory.getLogger(NewClass.class);
    private static final Logger errorLogger = LoggerFactory.getLogger(ErrorHandlingClass.class);

    public void respond() {
        logger.info("info file");
        try {
            doSomething();
        } catch (Exception e) {
            errorLogger.error("error doing something", e);
        }
    }

但是,如果您使用SLF4J记录器写入“新日志文件”,我认为您无法检测到写入失败。

 类似资料:
  • 我还希望com.mypack的级别“trace”与“info”的行为方式相同。到目前为止,我还没有取得任何成功。我需要像这样的东西 感谢你的帮助。

  • 问题内容: 我已经在使用基本的日志记录配置,其中所有模块中的所有消息都存储在一个文件中。但是,我现在需要一个更复杂的解决方案: 两个文件:第一个保持不变。 第二个文件应具有一些自定义格式。 我一直在阅读该模块的文档,但目前它们对我来说很复杂。记录器,处理程序… 因此,简而言之: 如何在Python 3中登录到两个文件,即: 问题答案: 您可以执行以下操作:

  • 问题内容: 我正在使用logback / slf4j进行日志记录。我想解析我的日志文件以分析一些数据,所以我不想解析一个很大的大文件(主要由调试语句组成),而是要有两个记录器实例,每个实例都记录到一个单独的文件中。一种用于分析,另一种用于通用日志记录。有谁知道使用Logback或其他任何记录器是否可行? 问题答案: 很可能在logback中执行类似的操作。这是一个示例配置: 然后,您将设置两个单独

  • 基本上我有: 错误:只有在显式请求批注处理时才接受类名“test” 非常感谢所有的回复:)

  • 我们有两个不同的ASP.NET应用程序启用了Log4net日志记录。它们都有相同的log4net1.2.10.0版本。

  • 例如,拥有如下所示的类。类中的第一个不是null,但中的第二个是null。我得到我尝试创建bean它工作,然后在中调用时得到相同的异常。如何在使用注释的任何地方都使用。 我的主要班级: 类A中使用的验证器类: AmountValidator添加到类Validator中的规则。