【问题标题】:Spring logging and application.propertiesSpring 日志记录和 application.properties
【发布时间】:2014-09-29 09:41:32
【问题描述】:

下面的问题对很多人来说可能看起来很愚蠢,因为它应该有一个简单的解决方案,但是我是Spring框架的初学者,我已经搜索和测试了很多方法,但没有成功。

所以,我需要为基于 Spring 的 Web 服务实现日志记录。 Maven 用于依赖,使用 spring-boot-starter-ws 依赖,而不是整个 starter-web starter。

我尝试使用 log4j,通过添加依赖项和配置文件,它确实生成了一个日志文件,但仅用于记录器本身的初始化,并且没有记录何时使用服务,尽管 log4j 处于 TRACE 级别. 我还尝试使用 logback,添加 logback.xml 文件,并添加 starter-logging 依赖项,但这也会创建空的日志文件,其中没有任何内容。

在 Spring boot 文档中,提到了 application.properties 文件。所以我在 WEB-INF 中创建了这个,并放入了 logging.level.org.springframeworklogging.path 条目。但仍然没有创建任何日志文件。

我不想记录自己的消息,我只想记录 Spring 本身生成的事件。而且我也没有主要方法,只有 Web 服务的端点,如果其中任何一个可能相关的话。所以我需要的是尽可能简单的日志记录,可能不需要添加太多依赖项左右,并将 Spring 消息检索到日志中。谁能告诉我我做错了什么?

【问题讨论】:

    标签: spring logging log4j spring-boot logback


    【解决方案1】:

    logback 是 Spring Boot 使用的默认日志实现(我假设您正在使用 Spring Boot 创建一个 jar 并运行它!)。基本上,您不需要做任何事情,您所包含的启动器已经处理了日志记录。

    Spring 附带了一个默认的logback.xml,它打开了日志记录,对于 Spring 框架,这是在 INFO 上。

    如果您想覆盖它,只需创建一个与默认文件内容相同的logback.xml 文件,并将spring 记录器放在DEBUG 或TRACE 上。除非您想要一个性能较低的应用程序,否则不确定您是否真的想跟踪所有内容。

    至于你做错了什么,你可能做的太多,想的太复杂。

    【讨论】:

      【解决方案2】:

      我在 WEB-INF 中创建了这个

      这是您已经尝试过的唯一问题。它必须在类路径上(*如果你有一个正常的构建配置,把它放在“src/main/resources”,如果你出于某种原因手动构建一个WAR,把它放在“WEB-INF/classes”中)。

      【讨论】:

      • 我正在使用 Maven 构建 WAR。但是,只需将其留在“WEB-INF”中即可。虽然我不确定为什么 log4j 不起作用,但我现在不会再尝试了。
      【解决方案3】:

      不知道logging.level.org.springframework and the logging.path 是否适用于弹簧靴。您可以尝试将 logback.xml 文件和 application.properties 直接移动到resources dir + 将其粘贴到 logback.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <configuration scan="true" scanPeriod="30 seconds">
      <include resource="org/springframework/boot/logging/logback/base.xml"/>
      <logger name="org.springframework" level="DEBUG" appender-ref="FILE"/>
      </configuration>
      

      这应该登录控制台和您的 /tmp(如果是 linux)目录。

      //更新:

      要手动设置写入日志的位置,您可以执行以下操作(我基本上减少了导入的 base.xml 内部的内容):

      <appender name="FILE_APPENDER"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
          <encoder>
              <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] --- %-40.40logger{39} : %m%n%wex</pattern>
          </encoder>
          <file>C://yourDir</file>
      </appender>
      

      然后改变

      <logger name="org.springframework" level="DEBUG" appender-ref="FILE"/>
      

      到:

      <logger name="org.springframework" level="DEBUG" appender-ref="FILE_APPENDER"/>
      

      【讨论】:

      • 再次抱歉,但它是windows,我不确定它在哪里保存日志,我也不知道如何自己设置文件夹。我应该添加任何简单的标签来设置文件位置吗?
      • 很好,谢谢,现在可以了。我猜该文件格式不正确。
      猜你喜欢
      • 2017-11-01
      • 2013-12-27
      • 2018-04-13
      • 1970-01-01
      • 2021-11-19
      • 2017-06-06
      • 2018-01-05
      • 2017-12-26
      相关资源
      最近更新 更多