2017-02-04 5 views
0

나는 우분투 16.04와 함께 작업합니다. 내가 cassandra 자바 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로 log4j.properties로 slf4j.properties 이름을 바꿉니다 log4j.properties classpath에서. 다른 이름을 사용하려면 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가 classpath에 있는지 확인하고 파일에 로그를 쓸 권한이 있는지 확인해야합니다.

또한 log4j.properties를 코드로 명시 적으로 구성하십시오. PropertyConfigurator.configure (....)

+0

그것은 log4j.properties https://ibb.co/gtxvva의 경로입니다. 미리보기를 어떻게 확인할 수 있습니까? @begginghard –

+0

ls -al/home/sah/log4j IDEA를 사용하여 응용 프로그램을 실행 하시겠습니까? 그렇지 않으면 패키지 항아리를 실행합니까? – begginghard

+0

intellij와 maven 및 cassandra @begginghard를 사용합니다. –

관련 문제