Java log4j Syslogd打印字符'^I';而不是制表符
我正在处理打印消息(包含选项卡、空格等)的Java log4j Syslogd打印字符'^I';而不是制表符,java,log4j,syslog,Java,Log4j,Syslog,我正在处理打印消息(包含选项卡、空格等)的syslogd。当我观察/var/log/目录中的syslogd文件时,消息没有任何选项卡。相反,它正在打印^I 在ubuntu10.04lts和sysklogd上运行此程序 import org.apache.log4j.Appender; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; impor
syslogd
。当我观察/var/log/目录中的syslogd
文件时,消息没有任何选项卡。相反,它正在打印^I
在ubuntu10.04lts
和sysklogd
上运行此程序
import org.apache.log4j.Appender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.net.SyslogAppender;
public class syslogPrinter {
private static int sysLogFacility = SyslogAppender.LOG_LOCAL3;
private static String syslogHost = "localhost";
private static String layoutPattern = "%m%n";
public static Logger log2static = Logger.getLogger(syslogPrinter.class);
public static void main(String[] args) {
log2static.setLevel(Level.INFO);
PatternLayout layout = new PatternLayout(layoutPattern);
Appender syslogdAppender = new SyslogAppender(layout, syslogHost, sysLogFacility);
log2static.addAppender(syslogdAppender);
String str2 = "this is a tab: ";
str2 = str2.concat("\t");
str2 = str2.concat(" after space");
log2static.error(str2);
}
}
输出像
这是一个选项卡:^I在空格后
预期输出为
这是一个选项卡:空格后(选项卡
空间应该来了)
请告诉我如何在邮件中打印制表符而不是^I
是否需要配置
syslogd.conf
文件?是否使用Gnome日志文件查看器或tail
查看系统日志?如果没有,您将使用哪个工具/编辑器查看文件?Ctrl+I是某些终端中水平制表符的有效控制序列
我怀疑您使用的实用程序无法将Ctrl+I识别为有效的转义序列,您最好使用用于查看系统日志文件的查看器。I通过Gnome文件查看器检查日志文件,但无法解决此问题。gedit中的事件也将发生^L……。您能建议任何编辑器。。。。。。。。。。。。