log4j做为jetty的日志实现

目标: log4j做为jetty的日志实现

jetty日志原理:

jetty自己实现了一个日志工厂类org.eclipse.jetty.util.log.Log

该类被classloader加载的时会在classpath中查找有没有可用的日志接口(默认是slf4j,可以通过配置启动参数-Dorg.eclipse.jetty.util.log.class=xxxx来指定日志接口),如果找不到就用默认的标准输出日志实现(org.eclipse.jetty.util.log.StdErrLog)。

实现方法:

jetty/lib/ext下放入3个jar包slf4j-api-1.4.3.jar,slf4j-log4j12-1.4.3.jar,log4j-1.2.12.jar

slf4j-api-1.4.3.jar        slf4j的接口定义包

slf4j-log4j12-1.4.3.jar slf4j到log4j的转接包

log4j-1.2.12.jar           具体的日志实现包

jetty/resources 文件夹下已经提供一个默认的log4j.properties

启动的OPTIONS添加“ext,resources” ,这样就把jetty/lib/ext和jetty/resources路径添加到启动classpath中

当然你的jar和log配置文件可以放在容器目录外的任意地方,只需要在启动参数添加相应的配置项来指定目录地址。

比如jar文件在 /home/admin/logext, 日志配置文件在/home/admin/logconf

启动命令可以类似

java -jar start.jar lib=/home/admin/logext path=/home/admin/logconf

这样可以避免对容器目录文件的变更。

测试通过的jetty版本为7.2.0

相关推荐