Rin*_*iev 17 jboss log4j logback wildfly
我使用tomcat并简单地覆盖默认日志系统.如何在我的spring应用程序中使用wildfly上的logback启用日志记录?
我的logback.xml是关于tomcat的
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" />
<logger name="com.citronium.planstery" level="INFO" />
<logger name="org.apache.http.impl.conn.tsccm" level="ERROR" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
Jam*_*ins 32
您可以使用logback配置应用程序中的日志记录.您无法使用logback配置服务器的日志记录.
要在配置中使用logback,您需要更改add-logging-api-dependencies
to false
或创建jboss-deployment-structure.xml
排除子系统的.您还需要在部署中包含logback和slf4j.
更改的第一个选项add-logging-api-dependencies
是所有部署的全局设置.以下CLI命令将更改值:
/subsystem=logging:write-attribute(name=add-logging-api-dependencies,value=false)
Run Code Online (Sandbox Code Playgroud)
此选项不会向部署添加任何隐式日志记录依赖项.
使用a的第二个选项jboss-deployment-structure.xml
将仅禁用部署的日志记录子系统.以下是一个示例文件:
<jboss-deployment-structure>
<deployment>
<!-- exclude-subsystem prevents a subsystems deployment unit processors running on a deployment -->
<!-- which gives basically the same effect as removing the subsystem, but it only affects single deployment -->
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
Run Code Online (Sandbox Code Playgroud)
小智 5
顺便说一下,这就是我们使用wildfly-8.1.0-Final的方式。
首先,制作一个包含此类的jar文件:https : //gist.github.com/xiaodong-xie/219491e0b433f8bd451e
然后将此jar文件放入“ wildfly-8.1.0.Final/modules/system/layers/base/org/jboss/logmanager/main”中,并以完全相同的方式在module.xml文件中添加对此jar文件的引用夹。
然后将“ logback-classic-1.1.2.jar”和“ logback-core-1.1.2.jar”(您可以使用选择的任何版本的logback)放入“ wildfly-8.1.0.Final/modules/system/ layer / base / org / jboss / logmanager / main”,然后在module.xml文件中引用这两个jar文件。
将以下内容添加到您使用的standalone.xml中的“ subsystem:logging”中:
<custom-handler name="logback" class="org.slf4j.bridge.SLF4JBridgeHandler" module="org.jboss.logmanager"></custom-handler>
Run Code Online (Sandbox Code Playgroud)
并在以下root-logger元素中引用此处理程序:
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="logback"/>
</handlers>
</root-logger>
Run Code Online (Sandbox Code Playgroud)
这是logback.xml的示例:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"/>
<appender name="LOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${JBOSS_HOME}/standalone/log/server-logback.log</file>
<append>true</append>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="LOGFILE"/>
</appender>
<root level="INFO">
<appender-ref ref="ASYNC"/>
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
并将此logback.xml文件放入“ wildfly-8.1.0.Final/standalone/configuration”文件夹中。
将以下内容添加到“ wildfly-8.1.0.Final/bin”文件夹中的“ standalone.sh”或等效文件中。
-Dlogback.configurationFile=file:$JBOSS_CONFIG_DIR/logback.xml
Run Code Online (Sandbox Code Playgroud)
在“ -Dlogging.configuration =文件:$ JBOSS_CONFIG_DIR / logging.properties”行下。“ standalone.sh”文件中有2个位置。
================================================== ==============================
或者,您可以通过一种更简单的方式来实现。:)
将2个logback jar文件放入“ jboss.logmanager”模块,然后将“ -Dorg.jboss.logging.provider = slf4j”添加到“ standalone.sh”文件中的相同位置。
我发现如果顺便这样做会丢失一些日志记录,因为如果顺便这样做,Wildfly本身仍会使用自己的日志记录工具。
玩得开心。:-)
归档时间: |
|
查看次数: |
27232 次 |
最近记录: |