如何使用windows事件日志向Log4cxx发送日志消息?
如果我从多个过程中做这件事,它会安全吗?
:谢谢退休的Ninja...Yes,它很管用.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;
}
发布于 2012-01-26 09:26:37
几年前,我用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
发布于 2012-01-26 09:15:32
log4cxx似乎没有后端,您必须自己编写一个。有关Windows的更多信息,请阅读例如这。
由于非常明显的原因,事件日志必须是进程安全的:可以有许多进程同时写入它。
https://stackoverflow.com/questions/9015851
复制相似问题