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

Spring测井和application.properties

阎知
2023-03-14

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

因此,我需要实现基于Spring的Web服务的日志记录。Maven用于依赖项,带有spring boot starter ws依赖项,而不是整个starter web starter。

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

在Spring Boot文档中,应用程序。提到了属性文件。所以我在WEB-INF中创建了它,并将日志记录。数量组织。springframework日志记录。路径条目。但仍然没有创建任何日志文件。

我不想记录我自己的消息,我只想记录Spring本身生成的事件。我也没有一个主要的方法,只有一个网络服务的endpoint,如果其中任何一个可能相关的话。所以我需要尽可能简单的日志记录,可能不需要添加太多的依赖项,然后检索Spring消息到日志中。有人能告诉我我做错了什么吗?

共有3个答案

白祺然
2023-03-14

不知道是否日志记录。数量组织。springframework和日志记录。path适用于spring boot。你可以试着向后移动你的logback。xml文件和应用程序。属性直接指向resourcesdir将其粘贴到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"/>
左恺
2023-03-14

我在WEB-INF中创建了这个

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

崔高远
2023-03-14

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

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

如果你想覆盖它,只需创建一个logback。xml文件,其内容与默认文件相同,并将spring记录器置于调试或跟踪状态。不确定你是否真的想把所有的东西都记录下来,除非你想要一个性能较差的应用程序

至于你做错了什么,那就是你可能做得太多,思考得更复杂。

 类似资料:
  • 这实际上意味着com.abc.MyClass类中的任何日志都将被记录到两个记录器... 我的目标是能够定义第二个记录器(父记录器)来记录直接到达该记录器的任何消息,例如来自com.myclass类的消息,同时只记录通过可加性功能到达并已经记录在后代记录器中的错误级别消息... 如果我将“COM”的记录器设置为错误,我将只看到错误级别的消息,而我愿意看到直接写到这个日志的信息级别的消息... 这可能

  • 我正在使用设置为log level=INFO的wildfly21。在部署的代码中有许多记录器。调试语句。 例如 调试语句没有正确记录到文件中,因为日志记录级别设置为INFO。 我的问题是关于logger的性能成本。调试。 在代码中保留调试语句是否有任何性能代价。或者是文件I/O中的实际成本,因此,在需要时将调试语句留作故障排除之用并无害处。

  • 有没有一种方法可以让fluentd船LivenessProbes输出像它对普通容器在吊舱中的输出一样?

  • 如何禁用Quartz日志记录?Quartz正在我的控制台上打印INFO语句。我试图用log4j中的以下语句禁用它。属性文件

  • 我正在移动应用程序到,其中一部分工作是重构来自至。我想将现有的结构化日志数据传递给ApplicationInsights。 称之为: 生成应用程序洞察数据,包括和-yay的自定义维度。 称之为: 在哪里: 不会在Application Insights中生成任何属性。 所以是接口。这只是一个模拟;我真正想利用的是微软的等价物。实践。企业图书馆。伐木。LogEntry. 我的下一步是设置自定义,将属

  • 我在学习Kubernetes时试图测试一个活性探针。我已经设置了一个迷你库贝,并配置了一个带有活性探针的吊舱。 测试脚本(例如,通过docker exec),它似乎会根据需要报告成功和失败。 该探测会导致失败事件,我可以通过kubectl Description podname查看这些事件,但它不会报告从失败中恢复的情况。 是否可以在不重新启动吊舱或迷你库贝的情况下进行修改? 如果失败导致pod重