2013-06-26 20 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); 
    } 
}