solr log - yaokun123/php-wiki GitHub Wiki

solr的日志管理

一、solr日志配置文件的位置

solr的日志配置可以在 ../server/resources/log4j.properties中修改:

二、自定义输出格式说明

  <!-- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL -->
  <!-- %r 输出自应用启动到输出该log信息耗费的毫秒数  -->
  <!-- %c 输出所属的类目,通常就是所在类的全名 -->
  <!-- %t 输出产生该日志事件的线程名 -->
  <!-- %n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” -->
  <!-- %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921  -->
  <!-- %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlo4.main(TestLog4.java:10)  -->
  <!-- ========================================================================== -->

三、输出方式说明

  <!-- Log4j提供的appender有以下几种:  -->
  <!-- org.apache.log4j.ConsoleAppender(控制台),  -->
  <!-- org.apache.log4j.FileAppender(文件),  -->
  <!-- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), -->
  <!-- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),  -->
  <!-- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)   -->

四、solr日志配置详细示例

log4j.properties 文件:
# priority  :debug<info<warn<error
#you cannot specify every priority with different file for log4j
log4j.rootLogger=debug,stdout,info,debug,warn,error

#console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= [%d{yyyy-MM-dd HH:mm:ss a}]:%p %l%m%n
#info log
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.info.File=./src/com/hp/log/info.log
log4j.appender.info.Append=true
log4j.appender.info.Threshold=INFO
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n
#debug log
log4j.logger.debug=debug
log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.debug.File=./src/com/hp/log/debug.log
log4j.appender.debug.Append=true
log4j.appender.debug.Threshold=DEBUG
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n
#warn log
log4j.logger.warn=warn
log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender
log4j.appender.warn.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.warn.File=./src/com/hp/log/warn.log
log4j.appender.warn.Append=true
log4j.appender.warn.Threshold=WARN
log4j.appender.warn.layout=org.apache.log4j.PatternLayout
log4j.appender.warn.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n
#error
log4j.logger.error=error
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.error.File = ./src/com/hp/log/error.log
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n

五、关于solr日志配置的编码问题说明

log4j日志文件中文乱码处理方法
#定义DEBUG优先级,R为日志输出目的的
log4j.rootLogger=debug,file
#设置日志输出类型,为文件类型
#log4j.appender.file=org.apache.log4j.FileAppender
#设置日志输出类型,每天一个文件
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#在每天产生的文件后面追加
log4j.appender.file.DatePattern = '.'yyyyMMdd
#设置日志文件名 /home/weblogic/oneboss/0068_stat.log
log4j.appender.file.file=/home/weblogic/oneboss/0068_stat.log
#每次在文件尾写入新的日志信息
log4j.appender.file.Append=true
#日志输出信息格式类型
log4j.appender.file.layout=org.apache.log4j.PatternLayout
#日志输出信息格式为 换行、日期、优先级、[类名]、日志信息、换行   ==%n%d[%c]-%m%n  %m%n
log4j.appender.file.layout.ConversionPattern=%m%n
#设置输出日志文件编码(可以控制乱码情况)
log4j.appender.file.encoding=UTF-8

六、生产环境配置示例

#  Logging level
solr.log=../logs/

#  Logging level
log4j.appender.root.encoding=utf-8
log4j.rootLogger=INFO, root
log4j.category.root= INFO, root
log4j.additivity.root=true
log4j.appender.root=org.apache.log4j.RollingFileAppender
log4j.appender.root.File=${solr.log}/solr.log
log4j.appender.root.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.root.layout=org.apache.log4j.PatternLayout
log4j.appender.root.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %c{1}:%L - %m%n

#log4j.rootLogger=INFO, file, CONSOLE

#log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

#log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
#log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n

##- size rotation with log cleanup.
#log4j.appender.file=org.apache.log4j.RollingFileAppender
#log4j.appender.file.MaxFileSize=4MB
#log4j.appender.file.MaxBackupIndex=9

##- File to log to and log format
#log4j.appender.file.File=${solr.log}/solr.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n

log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop=WARN

# set to INFO to enable infostream log messages
log4j.logger.org.apache.solr.update.LoggingInfoStream=OFF