log4j Syslogd печатает символ '^ I' вместо табуляции - PullRequest
0 голосов
/ 27 мая 2011

Я работаю над syslogd, который печатает сообщение (содержит вкладки, пробелы и т. Д.). Когда я наблюдаю файл syslogd в каталоге / var / log /, у сообщения нет вкладок. Вместо негопечатает ^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 после пробела

ожидаемый выход составляет

это вкладка:после пробела (пробел должен появиться)

Подскажите, пожалуйста, как печатать вкладку в сообщении вместо ^I .......

Нужно ли мне настраиватьsyslogd.conf файл?

1 Ответ

0 голосов
/ 27 мая 2011

Вы используете средство просмотра Gnome Logfile или tail для просмотра системного журнала?Если нет, какой инструмент / редактор вы используете для просмотра файла?Ctrl + I является допустимой последовательностью управления для символа горизонтальной табуляции в некоторых терминалах.

Я подозреваю, что вы используете утилиту, которая не распознает Ctrl + I в качестве допустимой escape-последовательности, и вам было бы лучшеиспользуя средство просмотра, предназначенное для просмотра файлов системного журнала.

...