我正在处理syslogd
打印一条消息(包含标签,空格等......)。当我观察/ var / log /目录中的syslogd
文件时,消息没有任何消息tabs.Instead它正在打印^I
。
在ubuntu 10.04 LTS
和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
.......
我是否需要配置syslogd.conf
文件?
答案 0 :(得分:0)
您使用的是Gnome Logfile查看器还是tail
来查看syslog?如果没有,您使用哪个工具/编辑器查看文件? Ctrl + I是某些终端中水平制表符的有效控制序列。
我怀疑您使用的是不将Ctrl + I识别为有效转义序列的实用程序,最好使用一个用于查看syslog文件的查看器。