2012-10-25 71 views
2

我使用了一個函數來初始化記錄器和參數。 雖然我在控制檯中調用了這個函數LogMsg和換行符,但是它在文本文件中給出了單行。爲什麼?爲什麼日誌消息在文本文件中不能 n?

String logmsg="Line1\n"+"Line2\n"; 

public static void LogMsg(Logger logger,String pathname,Level level,String logmsg){ 
    //logger=Logger.getLogger("LogMsg"); 
    FileHandler fh=null; 
    try { 
     fh = new FileHandler(pathname,300000,1,true); 
     fh.setFormatter(new SimpleFormatter()); 
     LogRecord record1 = new LogRecord(level, logmsg); 
     logger.addHandler(fh); 
      logger.log(record1); 
      fh.close(); 

    } catch (SecurityException e) { 
     // TODO Auto-generated catch block 

     //e.printStackTrace(); 
     System.out.println("Failed to log message due to lack of permissions."); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     //e.printStackTrace(); 

     System.out.println("Failed to log message"); 
    } 


} 
+0

你使用哪個框架,log4j? – home

回答

2

嘗試

String logmsg="Line1\r\n"+"Line2\r\n"; 

或更好

logmsg = String.Concat("Line1",Environment.NewLine,"Line2",Environment.NewLine); 

或者更好的使用StringBuilder somethimng像

logmsg = CreateLogMessage(new string [] {"Line1", "Line2"}); 

public static CreateLogMessage(string[] argLines); 
{ 
    StringBuilder sb = new StringBuilder(argLines.Length); 
    foreach(String line in argLines) 
    { 
    sb.AppendLine(line); 
    } 
    return sb.ToString(); 
} 

Environment.Newline將處理在OS方面的差異的h行結束令牌預計。

+0

該死的只是注意到了java標籤,上面是C#應該很容易aadapt雖然 –

相關問題