【问题标题】:Datastax Cassandra 2.2.5: Change Logging Location (logback)Datastax Cassandra 2.2.5:更改日志记录位置(logback)
【发布时间】:2016-08-24 10:47:01
【问题描述】:

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

我还尝试更新 cassandra-env.sh,使用 "JVM_OPTS="$JVM_OPTS -Dcassandra.logdir=/data/log" 但是现在有两个不同文件夹的系统设置。因此,我的文件夹位置不会覆盖默认文件夹。 谢谢 贾斯卡兰

【问题讨论】:

    标签: cassandra datastax


    【解决方案1】:

    阅读 logback 文档后确定:http://logback.qos.ch/manual/configuration.html#variableSubstitution

    它表示 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”执行文件来工作。但似乎无法通过侵入性较小的方法“添加一个变量 $cassandra.logdir 以便您可以在 /usr/share/cassandra/cassandra.in.sh 中定义它,这比修改 cassandra exec 的侵入性更小”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 2016-08-27
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多