使用Log4cxx记录到windows事件
Logging to windows event using Log4cxx
如何使用Log4cxx将日志消息发送到windows事件日志?
如果我从多个过程中进行,它会是过程安全的吗?
好吧:谢谢退休的忍者。。。是的,它有效。。。[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;
}
几年前,我用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
log4cxx似乎没有Windows事件日志后端,您必须自己编写一个。如需有关Windows事件日志的更多信息,请阅读本节。
事件日志必须是进程安全的,原因很明显:可能有多个进程同时写入。
相关文章:
- Windows 进程间同步类似事件?
- 如何实现从 Windows 脚本主机到脚本的事件调度
- 具有多个 OR 的 Xpath 查询不适用于 Windows 事件
- 如何从Qt绑定到在Windows 7 / 8 / 10中连接/断开USB设备事件
- Windows 在 C++ 中锁定和解锁事件
- 如何将Windows事件日志刷新到磁盘
- 一个客户一次收到Windows事件
- 如何从Windows XP下的程序中知道或更改Windows事件日志的大小
- Windows事件在Linux中使用条件变量实现
- 从 Windows 事件唤醒 QThread
- 我可以在 QP(量子平台)活动对象中等待 Windows 事件(WaitForMultipleObjects)吗?
- 正在从Registry_TypeGroup1类获取注册表项路径(Windows事件跟踪)
- 如何调试是否设置了 Windows 事件对象
- Windows 事件日志中没有类别
- 如何在Qt中检测Windows事件
- 需要通过引用类传递Windows事件句柄的帮助
- 使用Log4cxx记录到windows事件
- 如何保持Qt小部件响应键盘和鼠标,同时处理Windows事件
- 从远程计算机(Windows XP)以编程方式检索Windows事件
- Windows事件的Boost等效