Solr 使用 Log4j
大家知道在解压开solr的web程序(apache-solr-3.2.0.war)时,在其WEB-INF/lib目录下有slf4j- api-1.5.5.jar,slf4j-jdk14-1.5.5.jar这两个jar包,故可知其默认使用的是jdk的日志数据,其日志都是输入到 tomcat的logs中;再看其是结合slf4j进行jdk的日志数据;slf4j并不是一种具体的日志系统,而是一个用户日志系统的facade,允许在部署最终应用时方便的变更其日志系统。故solr使用log4j也是ok的,即采用log4j替换jdk的日志输入;做法如下: 1. 将solr/WINF-WEB/lib中的slf4j-api-1.5.5.jar,slf4j-jdk14-1.5.5.jar删除,新加入 log4j-1.2.15.jar slf4j-api-1.5.0.jar slf4j-log4j12-1.5.0.jar或是其对应的jar包; 2.在solr/WEB-INF/下创建classes目录,因为默认的包中没有该目录,其都是使用jsp操作; 3. 将写好的log4j.properties放到solr/WEB-INF/classes中, 其内容如下,
log4j.rootLogger=INFO log4j.logger.org.apache.solr=INFO,ROLLING_FILE
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender log4j.appender.ROLLING_FILE.Append=false log4j.appender.ROLLING_FILE.File=/var/log/solr.log log4j.appender.ROLLING_FILE.MaxBackupIndex=50 log4j.appender.ROLLING_FILE.MaxFileSize=200MB log4j.appender.LOGFILE.Threshold=INFO log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout log4j.appender.ROLLING_FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p [%c]\:%L Line – %m%n
4.重启tomcat即可 PS:如果是采用JNDI部署,最好将以上的重新打包war,在替换旧的