Datastax Cassandra 2.2.5:更改日志记录位置(logback)
Datastax Cassandra 2.2.5: Change Logging Location (logback)
我在 ubuntu 服务器上使用 datastax cassandra 2.2.5。
日志记录配置似乎在“/etc/cassandra/logback.xml”文件中。在此 xml 中,日志文件的目标文件夹是通过 "${cassandra.logdir}" 属性 设置的。我应该在哪里 configure/change 这个 属性 以便我可以提供自定义文件夹位置?我 'not' 希望我的日志转到默认位置“/var/log/cassandra”。
我也尝试更新了 cassandra-env.sh,用
"JVM_OPTS="$JVM_OPTS -Dcassandra.logdir=/data/log"
但是现在有两个具有不同文件夹的系统设置。因此我的文件夹位置不会覆盖默认文件夹。
谢谢
贾斯卡兰
阅读 logback 文档后确定:http://logback.qos.ch/manual/configuration.html#variableSubstitution
它表示 logback.xml 中的变量针对不同的范围进行解析,顺序如下:
- 本地范围
- 上下文范围
- 系统范围
在我们的例子中,使用的是系统范围。
cassandra.logdir 设置在 /usr/sbin/cassandra
exec 文件本身中:
launch_service()
{
pidpath=""
foreground=""
props=""
class=""
cassandra_parms="-Dlogback.configurationFile=logback.xml"
cassandra_parms="$cassandra_parms -Dcassandra.logdir=/var/log/cassandra"
cassandra_parms="$cassandra_parms -Dcassandra.storagedir=$cassandra_storagedir"
...
...
如您所见,storagedir 变量可以由用户定义(在文件 /usr/share/cassandra/cassandra.in.sh
中),但似乎 cassandra.logdir
是硬编码的。
只需在那里更改它或添加一个变量 $cassandra.logdir
以便您可以在 /usr/share/cassandra/cassandra.in.sh
中定义它,这比修改 cassandra exec
我在 ubuntu 服务器上使用 datastax cassandra 2.2.5。 日志记录配置似乎在“/etc/cassandra/logback.xml”文件中。在此 xml 中,日志文件的目标文件夹是通过 "${cassandra.logdir}" 属性 设置的。我应该在哪里 configure/change 这个 属性 以便我可以提供自定义文件夹位置?我 'not' 希望我的日志转到默认位置“/var/log/cassandra”。
我也尝试更新了 cassandra-env.sh,用 "JVM_OPTS="$JVM_OPTS -Dcassandra.logdir=/data/log" 但是现在有两个具有不同文件夹的系统设置。因此我的文件夹位置不会覆盖默认文件夹。 谢谢 贾斯卡兰
阅读 logback 文档后确定:http://logback.qos.ch/manual/configuration.html#variableSubstitution
它表示 logback.xml 中的变量针对不同的范围进行解析,顺序如下:
- 本地范围
- 上下文范围
- 系统范围
在我们的例子中,使用的是系统范围。
cassandra.logdir 设置在 /usr/sbin/cassandra
exec 文件本身中:
launch_service()
{
pidpath=""
foreground=""
props=""
class=""
cassandra_parms="-Dlogback.configurationFile=logback.xml"
cassandra_parms="$cassandra_parms -Dcassandra.logdir=/var/log/cassandra"
cassandra_parms="$cassandra_parms -Dcassandra.storagedir=$cassandra_storagedir"
...
...
如您所见,storagedir 变量可以由用户定义(在文件 /usr/share/cassandra/cassandra.in.sh
中),但似乎 cassandra.logdir
是硬编码的。
只需在那里更改它或添加一个变量 $cassandra.logdir
以便您可以在 /usr/share/cassandra/cassandra.in.sh
中定义它,这比修改 cassandra exec