2017-02-04 23 views
0

私はubuntu 16.04で動作します。私は、cassandra java apiを持つプログラムでログイン・ファイルを書きたいと思っています。ログはJavaコンソールに書き込まれますが、ファイルには書き込まれません。log4jはファイルに書き込まないでください

私のプログラム:

import com.datastax.driver.core.querybuilder.*; 
import com.datastax.driver.core.*; 
import com.datastax.driver.core.ResultSet; 
import java.io.IOException; 
import java.util.ArrayList; 
import org.apache.log4j.Logger; 


public class DbAdmin { 

    private Cluster cluster; 
    private Session session; 
    private ResultSet R; 
    private int Count = 1; 
    static Logger logger = Logger.getLogger(DbAdmin.class.getName()); 

    public DbAdmin() throws IOException { 
     try { 
      this.cluster = Cluster.builder().addContactPoint(address).withCredentials(authecation).build(); 
      this.session = cluster.connectkeyspace); 
      logger.debug("Connect to database"); 
     } catch(Exception e){ 

     } 
    } 

と私のlog4j.properties:

# Define the root logger with appender file 
log = /home/sah/log4j 
log4j.rootLogger = DEBUG, FILE 

# Define the file appender 
log4j.appender.FILE=org.apache.log4j.FileAppender 
log4j.appender.FILE.File=${log}/g.log 

# Define the layout for file appender 
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m 

答えて

0

log4j.propertiesという名前のファイルのデフォルトの検索でのLog4jとしてlog4j.propertiesにごslf4j.propertiesの名前を変更しクラスパスで。別の名前を使用する場合は、org.apache.log4j.PropertyConfiguratorを使用して明示的にプロパティファイルを設定する必要があります。

+0

申し訳ありませんでしたlog4j.properties.i編集の質問@ abhisrivastava24 –

+0

あなたのlog4j設定はうまくいきます。ログフォルダ$ {log}のアクセス許可を確認してください。プログラムがログフォルダ内のファイルに書き込むことができるかどうか。 – abhisrivastava24

+0

他の簡単なプログラムは同じファイル@ abhisrivastava24 –

0

log4jがlog4j.propertiesを見つけられない場合は、コンソールappenderのみを持つデフォルトのlog4j.propertiesを使用します。したがって、コンソールの出力は正しくlog4j.propertiesを意味しません。

あなたが提供するlog4j.propertiesの内容は正しいです。 したがって、log4j.propertiesがクラスパスにあり、ログをファイルに書き込む権限を持っていることを確認する必要があります。

log4j.propertiesをコードで明示的に設定することもできます。 PropertyConfigurator.configure(....)

+0

で書くことができますそれはlog4j.properties https://ibb.co/gtxvvaのパスです。私は事前検査をどのようにチェックできますか? @begginghard –

+0

ls -al/home/sah/log4j IDEAを使用してアプリケーションを実行していますか?そうでなければパッケージのjarファイルを実行しますか? – begginghard

+0

私はintellijとmavenとcassandra @begginghardを使用します –

関連する問題