gpt4 book ai didi

java - 为什么日志消息不能在文本文件中\n?

转载 作者:行者123 更新时间:2023-11-30 09:30:55 25 4
gpt4 key购买 nike

我使用了一个初始化记录器和参数的函数。虽然我在控制台中调用了这个函数 LogMsg 和换行符,但它在文本文件中给出了一行。为什么会这样?

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");
}


}

最佳答案

尝试

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

或者更好

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

或者最好还是使用 StringBuilder 之类的东西

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 将根据预期的行尾标记来处理操作系统差异。

关于java - 为什么日志消息不能在文本文件中\n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com