Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datastax Cassandra 2.2.5:更改日志记录位置(回写)_Cassandra_Datastax - Fatal编程技术网

Datastax Cassandra 2.2.5:更改日志记录位置(回写)

Datastax Cassandra 2.2.5:更改日志记录位置(回写),cassandra,datastax,Cassandra,Datastax,我正在ubuntu服务器上使用datastax cassandra 2.2.5。 日志配置似乎位于“/etc/cassandra/logback.xml”文件中。在此xml中,日志文件的目标文件夹是通过“${cassandra.logdir}”属性设置的。我应该在哪里配置/更改此属性,以便提供自定义文件夹位置?我“不”希望我的日志转到默认位置“/var/log/cassandra” 我还尝试用 “JVM\u OPTS=“$JVM\u OPTS-Dcassandra.logdir=/data/lo

我正在ubuntu服务器上使用datastax cassandra 2.2.5。 日志配置似乎位于“/etc/cassandra/logback.xml”文件中。在此xml中,日志文件的目标文件夹是通过“${cassandra.logdir}”属性设置的。我应该在哪里配置/更改此属性,以便提供自定义文件夹位置?我“不”希望我的日志转到默认位置“/var/log/cassandra”

我还尝试用 “JVM\u OPTS=“$JVM\u OPTS-Dcassandra.logdir=/data/log” 但现在有两个不同文件夹的系统设置。因此,我的文件夹位置不会覆盖默认文件夹。 谢谢
jaskaran

在阅读了logback文档后确定:

它表示,logback.xml中的变量根据不同的范围进行解析,顺序如下:

  • 局部范围
  • 上下文范围
  • 系统范围
在我们的例子中,使用的是系统范围

cassandra.logdir设置在
/usr/sbin/cassandra
exec文件本身中:

launch_service()
{
    pidpath="$1"
    foreground="$2"
    props="$3"
    class="$4"
    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要简单得多

非常感谢doanduyhai。它通过直接更新“/usr/sbin/cassandra”来工作“exec文件。但似乎无法通过侵入性较小的方法“添加变量$cassandra.logdir,以便您可以在/usr/share/cassandra/cassandra.in.sh中定义它,这比修改cassandra exec更简单”