配置Solr日志記錄
臨時記錄設置
您可以使用Admin Web界面來控制Solr中的日志輸出量。選擇LOGGING鏈接。請注意,此頁面只允許您更改正在運行的系統中的設置,並不會保存在下一次運行中。 永久記錄設置
Solr 使用 Log4J 版本1.2 進行日志記錄,它是使用server/resources/log4j.properties進行配置。默認情況下,Solr日志消息將被寫入SOLR_LOGS_DIR/solr.log。 ``` /opt/solr-7.2.1/server/resources ``` ``` /opt/solr-7.2.1/server/logs ```solr日志配置示例
每天生成一個日志文件 ERROR單獨生成一個日志文件 ``` # Default Solr log4j config # rootLogger log level may be programmatically overridden by -Dsolr.log.level solr.log=${solr.log.dir} log4j.rootLogger=INFO, fileError, fileInfo, CONSOLEConsole appender will be programmatically disabled when Solr is started with option -Dsolr.log.muteconsole
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{collection} %X{shard} %X{replica} %X{core}] %c{1.} %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.fileError=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileError.DatePattern='_'yyyy-MM-dd
log4j.appender.fileError.File=${solr.log}/solrError.log
log4j.appender.fileError.Append=true
log4j.appender.fileError.Threshold=ERROR
log4j.appender.fileError.MaxBackupIndex=10
log4j.appender.fileError.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.fileError.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{collection} %X{shard} %X{replica} %X{core}] %c{1.} %m%n
使用日志輸出過濾
log4j.appender.fileError.filter.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.fileError.filter.F1.LevelMin=ERROR
log4j.appender.fileError.filter.F1.LevelMax=ERROR
log4j.appender.fileInfo=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileInfo.DatePattern='_'yyyy-MM-dd
log4j.appender.fileInfo.File=${solr.log}/solrInfo.log
log4j.appender.fileError.Append=true
log4j.appender.fileInfo.Threshold=INFO
log4j.appender.fileError.MaxBackupIndex=10
log4j.appender.fileInfo.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.fileInfo.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{collection} %X{shard} %X{replica} %X{core}] %c{1.} %m%n
使用日志輸出過濾
log4j.appender.fileInfo.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.fileInfo.F1.LevelMin=INFO
log4j.appender.fileInfo.F1.LevelMax=INFO
Adjust logging levels that should differ from root logger
log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop=WARN
log4j.logger.org.eclipse.jetty=WARN
log4j.logger.org.eclipse.jetty.server.Server=INFO
log4j.logger.org.eclipse.jetty.server.ServerConnector=INFO
set to INFO to enable infostream log messages
log4j.logger.org.apache.solr.update.LoggingInfoStream=OFF
</br>
<h3>記錄慢速查詢</h3>
對於大容量的搜索應用程序,記錄每個查詢可能會生成大量日志,並且根據卷的大小,可能會影響性能。如果您挖掘這些日志以獲取對應用程序的更多見解,那么記錄每個查詢請求可能會有用。
另一方面,如果您只關心與請求相關的警告和錯誤消息,則可以將日志詳細程度設置為WARN。但是,這會造成潛在的問題,因為您不知道是否有任何查詢緩慢,因為緩慢的查詢仍然記錄在INFO級別。
Solr提供了一種將日志詳細度閾值設置為WARN的方法,並且可以設置一個延遲閾值,在該閾值之上,請求被視為“slow”,並在WARN級別記錄該請求,以幫助您識別應用程序中的緩慢查詢。要啟用此行為,請在solrconfig.xml 的查詢部分配置該<slowQueryThresholdMillis>元素:
超過指定閾值的任何查詢將在WARN級別被記錄為“slow”查詢。