2013-04-03 5 views
1

В настоящее время я использую библиотеку Poco Logger в каком-то C++-коде. Он работает на сервере в США, но, несмотря на то, что в системном времени есть правильный часовой пояс, файлы журнала печатают временные метки как GMT.Poco с использованием неправильного часового пояса

Это настраиваемая настройка Poco или системная настройка, которую мне нужно найти? Кажется, я не могу найти ответ нигде!

Возможно полезный выход ниже.

образец журнала: 2013-04-03 11:49:32.862 GMT[31015]:Debug:...
формат файла журнала строка: pattern = "%Y-%m-%d %H:%M:%S.%i %Z[%P]:%p:%t"

Выход из /etc/sysconfig/clock:

ZONE="America/Los_Angeles" 
UTC=true 
ARC=false 

Выход из date: Wed Apr 3 04:57:44 PDT 2013
Выход из echo $TZ: America/Los_Angeles

Любые идеи очень ценятся!

ответ

5

Класс Poco :: PatternFormatter имеет свойство «times», которое может быть установлено в «UTC» (по умолчанию) или «local» (что вы ищете). Вы можете установить в конфигурационном файле, но вы должны явно определить форматчик:

logging.channels.c1.class = FileChannel 
logging.channels.c1.path = ${system.tempDir}/sample.log 
logging.channels.c1.formatter.class = PatternFormatter 
logging.channels.c1.formatter.pattern = %Y-%m-%d %H:%M:%S.%i %Z[%P]:%p:%t 
logging.channels.c1.formatter.times = local 

Если вы создаете форматировщик программно, использовать метод SetProperty():

pPatternFormatter->setProperty("times", "local"); 

См. Также: http://pocoproject.org/slides/185-LoggingConfiguration.pdf

Смежные вопросы