Jor*_*orn 4 java logging tomcat logback tomcat7
我在 Tomcat 7 中运行两个 Web 应用程序。
Tomcat 有一个logback-access.xml,它定义了两个附加程序。
我可以看到它在启动 tomcat 时被拾取,并且附加程序配置已正确解析。
我的问题是,如何让 web 应用程序使用其中定义的附加程序?
我尝试将<logger>和<root>元素放入logback-access文件中,但这会产生错误:
[logger] 没有适用的操作,当前 ElementPath 是 [[configuration][logger]]
, 和root类似appender-ref。
我尝试将一个logback.xml文件放入我的战争文件中,既是WEB-INF/classes又是WEB-INF,但它似乎没有被拾取。
那么,我应该如何正确配置呢?
Tomcat中logback-access.xml的:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<append>true</append>
<file>${catalina.base}/logs/my=app.log</file>
<encoder>
<pattern>combined</pattern>
</encoder>
</appender>
<appender name="STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>localhost:5044</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<!-- cut specific config -->
</providers>
</encoder>
</appender>
</configuration>
Run Code Online (Sandbox Code Playgroud)
在:logback.xmlWEB-INF/classes
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<logger name="my.package" level="DEBUG"/>
<logger name="com.amazonaws" level="INFO"/>
<!-- and several more loggers like this -->
<root level="DEBUG">
<appender-ref ref="FILE"/>
</root>
<root level="TRACE">
<appender-ref ref="STASH"/>
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
如果有人遇到类似问题,我会将其留在这里。
首先,你根本不需要logback-access.xmltomcat 中的or Valve 。server.xml使用应用程序中的过滤器记录传入请求。
然后,如果您需要在服务器上而不是在应用程序中配置附加程序,请设计一个附加程序logback.xml并将其放入 tomcat 的lib文件夹中(通常是/usr/share/java/tomcat)。logback.xml您的应用程序中不需要 a 。该logback-commonjar 可以位于您的 war 中,也可以位于 tomcat lib 文件夹中,无论您喜欢哪个。
这样,应用程序将logback.xml在 tomcat 共享类路径上找到泛型,并使用它,就像它包含在战争中一样。
| 归档时间: |
|
| 查看次数: |
11119 次 |
| 最近记录: |