codecamp

配置Solr日志记录

Solr日志是了解系统中发生的情况的关键方法。有几种方法可以调整默认的日志记录配置。

除了下面介绍的日志记录选项外,还有一种方法可以配置哪些请求参数(如作为查询的一部分发送的参数),并使用附加的名为logParamsList的请求参数进行记录。有关更多信息,请参阅常见查询参数一节。

临时记录设置

您可以使用Admin Web界面来控制Solr中的日志输出量。选择LOGGING链接。请注意,此页面只允许您更改正在运行的系统中的设置,并不会保存在下一次​​运行中。(有关Admin Web界面的更多信息,请参阅使用Solr管理用户界面。)

Solr日志记录屏幕

Admin Web界面的这一部分允许您为许多不同的日志类别设置日志记录级别。幸运的是,任何未设置的类别都将具有其父级的日志记录级别。这样就可以通过调整其父级的日志级别来一次更改多个类别。

当您选择“级别”时,您会看到以下菜单:

Solr日志级菜单

目录显示当前的日志记录级别。日志级别菜单浮动在这些上面。要为特定目录设置日志级别,请选择它并单击相应的日志级别按钮。

日志级别设置如下:

级别结果

FINEST

报告一切

FINE

报告一切,但都是最不重要的信息

CONFIG

报告配置错误

INFO

报告一切,但是正常状态的

WARN

报告所有警告

SEVERE

只报告最严重的警告

OFF

关闭日志记录

UNSET

删除以前的日志设置


Note:一次可以允许有多个设置。

日志级别的API

还有一种方法可以将 REST 命令发送到日志记录端点以执行相同的功能。例如:

# Set the root logger to level WARN
curl -s http://localhost:8983/solr/admin/info/logging --data-binary "set=root:WARN"

在启动时选择日志级别

您可以在启动Solr时暂时选择不同的日志记录级别。有两种方法:

第一种方法是在启动Solr之前设置SOLR_LOG_LEVEL环境变量,或者将相同的变量放在bin/solr.in.sh或bin/solr.in.cmd中。变量必须包含支持日志级别的大写字符串(请参见上文)。

第二种方法是使用-v或-q选项启动Solr,有关详细信息,请参阅Solr控制脚本参考。例子:

# Start with verbose (DEBUG) looging
bin/solr start -f -v
# Start with quiet (WARN) logging
bin/solr start -f -q

永久记录设置

Solr 使用 Log4J 版本1.2 进行日志记录,它是使用server/resources/log4j.properties进行配置。花点时间检查log4j.properties文件的内容,以便熟悉其结构。默认情况下,Solr日志消息将被写入SOLR_LOGS_DIR/solr.log。  100000 100

准备在生产环境中部署Solr时,请将变量 SOLR_LOGS_DIR 设置为希望 Solr 写入日志文件的位置,例如:/var/solr/logs。您可能也想调整log4j.properties。请注意,如果您使用Solr生产中提供的说明将Solr作为服务安装,则请参阅/var/solr/log4j.properties,而不是默认的server/resources版本。

当在前台(-f选项)启动Solr时,除了solr.log,所有日志将被发送到控制台。当在后台启动Solr时,它会将所有的stdout和stderr输出写入到solr-<port>-console.log的一个日志文件中,并自动禁用log4j.properties配置的CONSOLE记录器,其效果与您从rootLogger手动删除CONSOLE appender效果相同。

此外,log4j.properties默认的日志旋转大小阈值4MB 对生产服务器来说很可能太小,应该增加到更大的值(例如100MB或更多)。

log4j.appender.file.MaxFileSize=100MB

当垃圾收集日志大小达到20M时,Java垃圾收集日志被JVM旋转,最多9代。旧的GC日志被移动到SOLR_LOGS_DIR/archived。这些设置只能通过编辑start脚本来更改。

在Solr的每次启动时,start脚本将清理旧日志并旋转主solr.log文件。如果在log4j.properties中更改了log4j.appender.file.MaxBackupIndex设置,则还需要更改 start 脚本中的相应-rotate_solr_logs 9 设置。

您可以通过更改设置在启动时禁用自动登录旋转,通过在bin/solr.in.sh或bin/solr.in.cmd中发现的SOLR_LOG_PRESTART_ROTATION设置为false。

记录慢速查询

对于大容量的搜索应用程序,记录每个查询可能会生成大量日志,并且根据卷的大小,可能会影响性能。如果您挖掘这些日志以获取对应用程序的更多见解,那么记录每个查询请求可能会有用。

另一方面,如果您只关心与请求相关的警告和错误消息,则可以将日志详细程度设置为WARN。但是,这会造成潜在的问题,因为您不知道是否有任何查询缓慢,因为缓慢的查询仍然记录在INFO级别。

Solr提供了一种将日志详细度阈值设置为WARN的方法,并且可以设置一个延迟阈值,在该阈值之上,请求被视为“slow”,并在WARN级别记录该请求,以帮助您识别应用程序中的缓慢查询。要启用此行为,请在solrconfig.xml 的查询部分配置该<slowQueryThresholdMillis>元素:

<slowQueryThresholdMillis>1000</slowQueryThresholdMillis>

超过指定阈值的任何查询将在WARN级别被记录为“slow”查询。

Solr如何制作和还原备份
Solr度量标准报告
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

SolrCloud

SolrCloud配置和参数

如何使用AsciiDoc

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }