gpt4 book ai didi

logging - 如何使用 Spring Boot 将日志消息写入文件?

转载 作者:行者123 更新时间:2023-12-03 12:45:15 25 4
gpt4 key购买 nike

我想在文件中而不是在控制台上记录消息。我正在使用 Spring Boot,我的配置如下:

应用程序属性:

logging.level: DEBUG
logging.level: ERROR
logging.file: ${HOME}/application.log

我只在我的 application.log 中收到 INFO 的日志消息文件,但我也想要 ERROR 和 DEBUG 消息。

我的要求是我想要 error.log 中的 ERROR 消息 debug.log 中的文件和调试消息和 info.log 中的 INFO 消息.

非常感谢任何帮助。

最佳答案

Spring Boot 允许您使用 application.properties 配置日志系统的一些基本方面,但有 limits :

To configure the more fine-grained settings of a logging system you need to use the native configuration format supported by the LoggingSystem in question.



换句话说,如果你想做一些属性没有特别支持的事情,你将无法添加和编辑 logback.xml。文件(假设您使用的是 logback)。

所以,让我们来看看你的要求:
  • “我想在一个不在控制台上的文件中记录消息。”

  • 根据 docs :

    By default, Spring Boot will only log to the console and will not write log files. If you want to write log files in addition (emphasis added) to the console output you need to set a logging.file or logging.path property (for example in your application.properties).



    换句话说, 不是 无法使用属性登录到控制台。
  • “我只在我的 application.log 文件中收到信息的日志消息,但我也想要错误和调试消息。”

  • 默认情况下,Spring Boot 日志记录在 INFO 级别,其中应包括 ERROR,您确定没有使用默认设置获取 ERROR 日志吗?

    此外,您只能指定要记录的最高级别,而不是每个级别,并且必须指定要设置级别的记录器。

    这行不通:
    logging.level: DEBUG
    logging.level: ERROR

    这是如何根据 docs 配置自定义日志级别的示例:

    logging.level.org.springframework.web: DEBUG
    logging.level.org.hibernate: ERROR



    您也可以使用 logging.level.*属性来设置根记录器的级别,如下所示:
    logging.level.ROOT: DEBUG

    请注意,在 ROOT logger 上设置 DEBUG 日志记录会生成大量日志。我刚刚在这里测试了它并且在启动时获得了大约 13MB 的日志,没有做任何事情。
  • “我想要 error.log 文件中的错误消息和 debug.log 中的调试消息和 info.log 中的信息消息。”

  • 同样,这不能单独使用属性来完成。 Spring Boot 允许你只配置一个 logging.file将包含所有日志的属性。

    有关可用日志属性和示例值的完整列表,请参阅 here .

    关于logging - 如何使用 Spring Boot 将日志消息写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30499443/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com