Вход в Windows событие, используя Log4cxx - PullRequest
0 голосов
/ 26 января 2012

Как я могу отправить сообщения журнала в журнал событий Windows , используя Log4cxx?

Если я сделаю это из нескольких процессов, будет ли процесс безопасен?

Хорошо: спасибо отставному ниндзя ... Да, это работает ... [файл log4j.properties]

# Set root logger level to DEBUG and its only appender to EVENTLOG.
log4j.rootLogger=DEBUG, EVENTLOG

# EVENTLOG.is set to be a NTEventLogAppender

log4j.appender.EVENTLOG=org.apache.log4j.net.NTEventLogAppender
log4j.appender.EVENTLOG.server=127.0.0.1
log4j.appender.EVENTLOG.source=SomeApp

# EVENTLOG uses PatternLayout.
log4j.appender.EVENTLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.EVENTLOG.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

и просто используя в коде

 #include "stdafx.h"
#include <windows.h>
#include <log4cxx/logger.h>
#include "log4cxx/propertyconfigurator.h"

using namespace log4cxx;

LoggerPtr logger(Logger::getLogger( "main"));

int  main()
{

    PropertyConfigurator::configure("log4j.properties");


    LOG4CXX_ERROR(logger, "Oh come on be serious");

    system("PAUSE");

    return 0;
}

Ответы [ 2 ]

1 голос
/ 26 января 2012

Мне удалось сделать это с log4cxx версии 0.10.0 пару лет назад.Я недавно не использовал log4cxx, поэтому я прошу прощения, если он изменился.

Вот конфигурация, которую я использовал:

# EVENTLOG
log4j.appender.EVENTLOG=org.apache.log4j.net.NTEventLogAppender
log4j.appender.EVENTLOG.server=127.0.0.1
log4j.appender.EVENTLOG.source=SomeApp
log4j.appender.EVENTLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.EVENTLOG.layout.ConversionPattern=[%c] %-5p: %m
log4j.appender.EVENTLOG.Threshold=ERROR
0 голосов
/ 26 января 2012

Кажется, что log4cxx не имеет бэкэнда журнала событий Windows, вам придется написать его самостоятельно. Прочитайте, например, это для получения дополнительной информации о журнале событий Windows.

Журнал событий должен быть безопасным для процесса по довольно очевидным причинам: может быть много процессов, пишущих в него одновременно.

...