我开始使用 log4j 的旧版本 cassandra (1.1),问题是“任何地方都没有日志”,经过一些调查后我发现了两个文件,我们可以从中更改日志设置:
1/ log4j-server.properties,设置应该插入系统日志(但它不起作用)
log4j.rootLogger=WARN,SYSLOG
log4j.logger.org.apache.thrift.server.TNonblockingServer=ERROR
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.SyslogHost=localhost
log4j.appender.SYSLOG.Facility=Local0
log4j.appender.SYSLOG.FacilityPrinting=false
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern=%m
log4j.appender.SYSLOG.header = true
Run Code Online (Sandbox Code Playgroud)
2/ /etc/default/cassandra 文件包含 $CASSANDRA_LOG_DIR (
CASSANDRA_LOG_DIR=/$USER/logs/cassandra
Run Code Online (Sandbox Code Playgroud)
我在所有服务器上都有相同的设置(带有 log4j 的 syslog 和默认日志文件),但是 cassandra 只能使用默认文件(/$USER/logs/cassandra/output.log)在某些服务器上登录
我的问题是:cassandra 默认使用哪个设置?即使没有 log4j,我们也可以让 cassandra 写入日志吗?
默认情况下,Cassandra output.log 位于: /var/log/cassandra/output.log
output.log 捕获 Cassandra 进程的标准输出。
如果您尝试更改完整诊断的配置,则需要根据 DataStax 提供的文档中的信息操作log4j-server.properties文件。
检查上述链接中的“更改日志级别”部分。
默认情况下,system.log 文件(log4j 正在写入的日志文件)位于/var/log/cassandra/system.log
参考DataStax 文档:
默认情况下,日志输出放置在 /var/log/cassandra/system.log 中。您可以通过编辑 log4j.appender.R.File 路径来更改输出的位置。确保该目录存在并且可由运行 Cassandra 的进程写入。
您可以在此处找到有关更改 cassandra system.log 文件的日志轮换的完整文档。
请注意,上述解释适用于 Cassandra <= 2.0 如果您正在寻找有关 Cassandra >= 2.1 的日志记录配置的信息,您需要查看DataStax 的此文档页面,因为 2.1+ 使用logback而不是 log4j。谢谢你,phact 的注释!
| 归档时间: |
|
| 查看次数: |
10920 次 |
| 最近记录: |