2013-06-26 2 views
0

임베디드 API를 통해 변경된 사항에 대한 로깅을 수행하는 트랜잭션 이벤트 핸들러가 있어야합니다. 내 코드를 실행하면neo4j 로거가 파일에 저장되지 않음

import org.neo4j.graphdb.Node; 
import org.neo4j.graphdb.event.TransactionData; 
import org.neo4j.graphdb.event.TransactionEventHandler; 
import org.neo4j.kernel.impl.util.StringLogger; 
import org.neo4j.server.logging.Logger; 
import java.util.logging.Level; 


public class WarehouseTransactionEventHandler implements TransactionEventHandler<String> { 
private static Logger log = Logger 
     .getLogger(WarehouseTransactionEventHandler.class); 



    public void afterCommit(TransactionData data, String state) { 

     Iterable<Node> createdNodes = data.createdNodes(); 
     for(Node n: createdNodes) { 
     log.info("AfterCommit ########: created node:" + n.getId()); 
     log.log(Level.ALL,"AfterCommit ########: created node:" + n.getId()); 
     } 



    } 


    public void afterRollback(TransactionData data, String state) { 
    // TODO Auto-generated method stub 

    } 

    public String beforeCommit(TransactionData data) throws Exception { 
     Iterable<Node> createdNodes = data.createdNodes(); 
     for(Node n: createdNodes) { 
      log.info("BeforeCommit ######: created node:" + n.getId()); 
      log.log(Level.ALL,"BeforeCommit ######: created node:" + n.getId()); 
     } 

     return null; 
    } 


} 

그런 다음 나는 쓰기를 수행 내 코드에 등록

GraphDatabaseService graphDb = new EmbeddedGraphDatabase(DB_PATH) 
graphDb.registerTransactionEventHandler(new WarehouseTransactionEventHandler()) 
// do stuff 
graphDb.shutdown(); 

그래서 내가 로그 겪었 그러나

INFO: AfterCommit ########: created node:14 
Jun 26, 2013 12:24:22 PM org.neo4j.server.logging.Logger log 
INFO: AfterCommit ########: created node:15 
Jun 26, 2013 12:24:22 PM org.neo4j.server.logging.Logger log 
INFO: AfterCommit ########: created node:17 
Jun 26, 2013 12:24:22 PM org.neo4j.server.logging.Logger log 
INFO: AfterCommit ########: created node:16 
Jun 26, 2013 12:24:22 PM org.neo4j.server.logging.Logger log 
INFO: AfterCommit ########: created node:19 
Jun 26, 2013 12:24:22 PM org.neo4j.server.logging.Logger log 
INFO: AfterCommit ########: created node:18 
Jun 26, 2013 12:24:22 PM org.neo4j.server.logging.Logger log 
INFO: AfterCommit ########: created node:21 
Jun 26, 2013 12:24:22 PM org.neo4j.server.logging.Logger log 
INFO: AfterCommit ########: created node:20 
Jun 26, 2013 12:24:22 PM org.neo4j.server.logging.Logger log 
INFO: AfterCommit ########: created node:22 

을 작동하는 것 같군 이러한 AfterCommit 메시지를 찾을 수 없습니다. 설정을 제외하고 내 log.properties가 변경되지 않았습니다. java.util.logging.FileHandler.limit=10000000

의견이 있으십니까? 감사!

답변

1

log4j을 사용해 보셨습니까? 제대로 작동합니까?

같이 ... 당신이 원하는 어디든지, 그것은 당신의 메시지를 기록합니다 앱 시작 @logger 초기화 :

static { 
    try { 
     String logFileName = "neo4j.log"; 
     RollingFileAppender fa = new RollingFileAppender(); 
     fa.setName("NEO4JLOGGER"); 
     fa.setFile(logFileName); 
     fa.setLayout(new PatternLayout(
       "[%d{dd.MM.yyyy HH:mm:ss.SSS}] %5p %c{1}:%L - %m%n")); 
     fa.setAppend(true); 
     fa.activateOptions(); 
     Logger.getLogger("CLASSES NEEDED TO BE LOGGED").setLevel(Level.ALL); 
     Logger.getLogger("CLASSES NEEDED TO BE LOGGED").addAppender(fa); 

    } catch (Exception ex) { 
     logger.error("Intialize Logger :: Failed... \n ", ex); 
    } 
}