2016-04-29 87 views
2

我在Ubuntu服務器上使用datastax cassandra 2.2.5。 日誌配置似乎位於「/etc/cassandra/logback.xml」文件中。在此xml中,日誌文件的目標文件夾通過「$ {cassandra.logdir}」屬性進行設置。我應該在哪裏配置/更改此屬性,以便我可以提供自定義文件夾位置?我不''要我的日誌去默認位置「/ var/log/cassandra」。Datastax Cassandra 2.2.5:更改日誌記錄位置(logback)

我也試着更新了cassandra-env.sh,與 「JVM_OPTS =」 $ JVM_OPTS -Dcassandra.logdir = /數據/日誌」 但現在有兩個系統設置不同的文件夾中。因此,我的文件夾位置不覆蓋默認文件夾 感謝 jaskaran

回答

2

好讀的logback文檔後:http://logback.qos.ch/manual/configuration.html#variableSubstitution

它說,在logback.xml變量針對不同的範圍解決,這或DER:

  • 局部範圍
  • 上下文範圍
  • 系統範圍

在我們的情況下,它是用於在系統範圍。

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比修改卡桑德拉EXEC

+0

非常感謝您doanduyhai少instrusive。它通過直接更新「/ usr/sbin/cassandra」exec文件來工作。但似乎沒有通過不那麼侵入的方法「添加一個變量$ cassandra.logdir,所以你可以在/usr/share/cassandra/cassandra.in.sh中定義它,這比修改cassandra exec的干擾性更小」 – karan1001