以下问题可能对许多人来说似乎很愚蠢,因为它应该有一个简单的解决方案,但我是Spring框架的初学者,我一直在搜索和测试许多方法但没有成功。
因此,我需要实现基于Spring的Web服务的日志记录。 Maven用于依赖项,具有spring-boot-starter-ws
依赖项,而不是整个starter-web starter。
我尝试使用log4j,通过添加依赖项和配置文件,它确实生成了一个日志文件,但仅用于记录器本身的初始化,并且没有记录何时使用该服务,尽管log4j处于TRACE级别。 我还尝试了logback,添加了logback.xml文件,并添加了starter-logging依赖项,但是这也创建了没有任何内容的空日志文件。
在Spring启动文档中,提到了application.properties
文件。所以我在WEB-INF中创建了这个,并放入logging.level.org.springframework
和logging.path
条目。但是根本没有创建日志文件。
我不想记录自己的消息,我只想记录Spring自己生成的事件。而且我也没有主要方法,只有Web服务的端点,如果其中任何一个可能是相关的。所以我需要的是最简单的日志记录,可能不会添加太多依赖项,并将Spring消息检索到日志中。有人能告诉我我做错了什么吗?
答案 0 :(得分:1)
logback是Spring Boot使用的默认日志记录实现(我假设您使用spring boot来创建jar并运行它!)。基本上,您不需要执行任何操作已由您包含的启动程序处理。
Spring附带了一个默认的logback.xml,它开启了日志记录,对于Spring框架,这是在INFO上。
如果要覆盖它,只需创建一个与默认文件具有相同内容的logback.xml
文件,并将记录器放在DEBUG或TRACE上。不确定您是否真的想要将所有内容都放在跟踪上,除非您需要性能较低的应用程序。
至于你做错了什么,你可能做得很多,并且想要复杂化。
答案 1 :(得分:0)
我在WEB-INF
中创建了这个
这是你已经尝试过的唯一问题。它必须在类路径上(如果你有正常的构建配置,那么把它放在“src / main / resources”中,如果由于某种原因手动构建WAR,则将它放在“WEB-INF / classes”中。) / p>
答案 2 :(得分:-1)
不知道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)dir。
//更新:
手动设置写日志的位置你可以做一些事情(我基本上减少了导入的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"/>