首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Log4cxx登录到windows事件

使用Log4cxx登录到windows事件
EN

Stack Overflow用户
提问于 2012-01-26 09:07:32
回答 2查看 1.5K关注 0票数 0

如何使用windows事件日志向Log4cxx发送日志消息?

如果我从多个过程中做这件事,它会安全吗?

:谢谢退休的Ninja...Yes,它很管用.log4j.properties文件

代码语言:javascript
运行
复制
# 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

并且简单地在代码中使用

代码语言:javascript
运行
复制
 #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;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-26 09:26:37

几年前,我用log4cxx版本0.10.0做了这件事。我最近没有使用log4cxx,所以如果它改变了,我很抱歉。

下面是我使用的配置:

代码语言:javascript
运行
复制
# 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
票数 1
EN

Stack Overflow用户

发布于 2012-01-26 09:15:32

log4cxx似乎没有后端,您必须自己编写一个。有关Windows的更多信息,请阅读例如

由于非常明显的原因,事件日志必须是进程安全的:可以有许多进程同时写入它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9015851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档