xwiki管理指南-日志

XWiki默认是使用SLF4J和Logback来管理日志。Logback配置文件位于WEB-INF/classes/logback.xml。

XWIki classpath下面第三方包生成的日志通过Logback配置文件的定义可以自动找到自己输出方式。由于原先使用的是Apache Commons Logging(JCL),Log4J作为日志框架,为了与SLF4J共存,通过SLF4J桥接器可以保证,既 log4j-over-slf4j-*.jar和jcl-over-slf4j-*.jar。

默认情况下,XWiki日志只输出到控制台。控制台内容是否被Servlet容器捕获取决于你使用的servlet容器。例如,部署在unix的tomcat能捕获标准输出并把信息输出到tomcat/logs/catalina.out。

配置日志

有多种方法配置日志。

提出以下3种方法中,只有手动的方法是在服务器重新启动后也是持续有效的。所以,如果你的服务器可能会重新启动并且你想要在重启后保留修改的日志配置,唯一的方法是将它们添加到logback.xml。

手动

只需编辑的logback配置文件(logback.xml位于web应用程序WEB-INF/classes文件夹下),然后重新启动Servlet容器使其生效。

使用Log应用程序

XWiki 4.2开始可以在wiki的管理界面使用Logging Application,你可以用它来配置日志级别。

使用JMX

Logback通过JMX修改日志配置(比如日志级别从Debug调整到INFO),可以在运行时在JMX控制台直接操作,无需重启servlet容器。在生产环境中,调试问题时非常有用。

使用Lilith分析日志

Lilith是log事件的观察者,和log4j的chainsaw类似。而lilith还能处理大数量的log数据。想要使用Lilith,需要添加以下内容到logback.xml文件:

...
 <appender name="socket" class="ch.qos.logback.classic.net.SocketAppender">
   <RemoteHost>localhost</RemoteHost>
   <Port>4560</Port>
   <ReconnectionDelay>170</ReconnectionDelay>
   <IncludeCallerData>true</IncludeCallerData>
 </appender>
...

添加一个新的appender。例如:

...
 <root level="warn">
   <appender-ref ref="stdout"/>
   <appender-ref ref="socket"/>
 </root>
...

打开Lilith(桌面应用程序),它会自动监听4560端口,如下:

使用SLF4J不同的实现

简单日记门面(Facade)SLF4J是为各种loging APIs提供一个简单统一的接口。如果你愿意的话,可以使用Log4j来记录XWiki产生的所有日志,你可以按以下这样做:

  • 去除Logback实现,既在classpath去除WEB-INF/lib/logback-classic-*.jar以及WEB-INF/lib/logback-core-*.jar 
  • 去除桥接器Log4J over SLF4J JAR包,既在classpath去除 WEB-INF/lib/log4j-over-slf4j-*.jar
  • 添加链接slf4j-api和log4j的适配器,既在classpath添加:slf4j-log4j*-*.jar
  • 添加Log4J到classpath

XWiki旧版本

XWiki 3.0以及更老的版本使用Commons Logging记录日志。既Commons Logging+log4J。Log4j配置文件log4j.properties位于jar包 (xwiki-core-x.y.jar)里。该jar位于WEB-INF/lib/下面。

默认情况下XWiki日志只记录在控制台上。

使用自定义的Log4j配置

最好的办法是在WEB-INF/classes目录下建立一个新的log4j.properties文件。它会覆盖xwiki-core-x.y.jar里的配置。这里有一个示例配置:

### Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%X{url}] [%t] %-5p %-30.30c{2} %x - %m %n

### By default everything that is of warning or severity WARN, ERROR or FATAL is logged both to
### the console and to the xwiki.log file.
log4j.rootLogger=warn, stdout

### Hibernate logging options
log4j.logger.org.hibernate=warn
log4j.logger.org.hibernate.SQL=warn
log4j.logger.org.hibernate.type=warn
log4j.logger.org.hibernate.ps.PreparedStatementCache=warn

### XWiki logging configuration
log4j.logger.org.xwiki=info
log4j.logger.com.xpn.xwiki=warn
log4j.logger.com.xpn.xwiki.render.XWikiRadeoxRenderEngine=warn
log4j.logger.com.xpn.xwiki.store.migration=info

### Deactive Struts warnings
log4j.logger.org.apache.struts.util.RequestUtils=error

### Deactivate JGroups warnings
log4j.logger.org.jgroups=error

## Deactive PDF Export CSS Applier warnings
log4j.logger.info.informatica.doc.style.css.dom=error
log4j.logger.org.apache.fop.layoutmgr.inline.ContentLayoutManager=error

对于Hibernate的设置,需要配置如下:

log4j.logger.org.hibernate.SQL=debug

激活XWiki监控功能

默认配置下,监控功能已经激活。

XWiki有一个特性,可以监控components花费的时间。要激活它,你需要:

  • 启用监控插件,通过添加/修改xwiki.cfg配置文件中的插件定义:

    xwiki.plugins=\
       [...]
       com.xpn.xwiki.monitor.api.MonitorPlugin

  • 通过添加/修改xwiki.cfg配置文件启用功能:

    xwiki.monitor=1

  • 由于插件在DEBUG下输出所有日志,则需要设置com.xpn.xwiki.monitor为DEBUG级别

    使用Logback需要在logback.xml添加以下信息:

    <logger name="com.xpn.xwiki.monitor" level="debug"/>

    而对于使用log4j的XWiki较旧版本,需要log4j.properties添加以下信息:

    log4j.logger.com.xpn.xwiki.monitor=debug

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程泓哥

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值