大家知道在解壓開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,在替換舊的