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

何时何地在spring boot应用程序中应用日志记录

常培
2023-03-14

我有一个Spring启动应用程序设置,包括使用log4j日志记录。在应用程序中,很少有层,如控制器、服务、模型、存储库、异常等。目前,我已经在异常层中包含了ERROR级别的日志。

@Component
public class ExceptionFactory {

    private static final Logger LOG =   LoggerFactory.getLogger(ExceptionFactory.class);

    public static ApplicationSpecificException create(final Throwable cause, final ExceptionType exceptionType, final Object... messageArguments) {
        LOG.error(MessageFormat.format(exceptionType.getMessage(), messageArguments), cause);
        return new ApplicationSpecificException (exceptionType, cause, messageArguments);
    }

    public static ApplicationSpecificException create(final ExceptionType exceptionType, final Object... messageArguments) {
        LOG.error(MessageFormat.format(exceptionType.getMessage(), messageArguments));
        return new ApplicationSpecificException(exceptionType, messageArguments);
    }
}
  1. 在上面提到的任何层中使用日志记录是否合适?
  2. Log4j具有日志级别,如FATAL、ERROR、WARN、INFO、DEBUG和TRACE。如何识别在Spring应用程序中登录时使用这些级别的情况?

共有1个答案

哈宪
2023-03-14

第一个问题的答案是:日志记录是一个所谓的“交叉关注点”,这意味着它与问题域无关,因此它出现在代码中的任何地方,每一层。

这里回答了您的第二个问题:如何确定要使用的日志级别?

 类似资料:
  • 本文向大家介绍如何配置Spring Boot应用程序日志记录?相关面试题,主要包含被问及如何配置Spring Boot应用程序日志记录?时的应答技巧和注意事项,需要的朋友参考一下 Spring Boot附带了对Log4J2,Java Util Logging和Logback的支持。它通常预先配置为控制台输出。可以通过仅在application.properties文件中指定logging.leve

  • 我有一个使用Spring Boot开发的微服务。应用程序部署在pivotal cloud Foundry。我已经在logback.xml中设置了日志级别,它是应用程序的一部分。为了更改日志级别,我必须更新logback.xml并重新构建/重新部署应用程序。有没有更好的方法做到这一点,而不必重新部署应用程序?有没有办法在PCF中将日志级别设置为env变量?

  • 我正在将我的应用程序从JBoss 6 AS迁移到Wildfly 8.2.0 AS。我可以实现按预期创建应用程序日志,但需要独立/日志/服务器。日志文件中也充满了应用程序日志。我正在使用独立的完整ha。xml配置。任何人都可以建议一个选项,禁止将应用程序日志填充到服务器中。日志 以下部分摘自standalone-full-ha.xml:

  • 我目前正在使用Azure'Web应用Linux',它利用docker容器通过私有注册表(Azure容器注册表)托管java应用和python应用,我还没有找到收集和分析应用程序日志的方法容器。 目标是通过OMS、application insight或storage analytics分析应用程序日志。我知道“linux上的Web应用程序”仍处于预览状态,但没有关于当前支持哪些功能的官方文档。 A

  • 我对多租户非常陌生。我们有一个基于Java、Spring、Hibernate/JPA等的应用程序,它不支持多租户。 现在,我们要将该应用程序转换为多租户应用程序。我读过关于多租户的文章,甚至用独立的模式方法编写了一个独立的应用程序。链接指的是这里。 我想到了日志部分,现在肯定会改变,因为日志文件现在将按租户(客户端)维护。因此,对于每个租户,将有一个单独的日志文件。此外,另一个租户不应访问特定租户

  • 我有Kafka Streams java应用程序启动并运行。我试图使用KSQL创建简单的查询,并使用Kafka流来实现复杂的解决方案。我希望将KSQL和Kafka流作为Java应用程序运行。 我打算通过https://github.com/confluentinc/ksql/blob/master/ksqldb-examples/src/main/java/io/confluent/ksql/em