我建议使用平台的本机记录器,它是Posix上的syslog和Windows上的事件日志.
对于C++,您可以在平台上使用本机调用.
我知道Python在Posix上附带了syscall包装器,并且在PyWin32扩展中有事件日志的包装器.我假设有人已经创建了Java包装器.
更新
关于syslog和多个文件.syslog支持设施的概念 - 通过设施,您可以将不同的日志转到不同的文件.不幸的是,设施是预定义的; 虽然有8个通用的LOG_LOCAL0
,LOG_LOCAL7
你不能定义任意设施.
另请注意,由syslog守护程序决定在何处为每个设施/级别路由日志消息.您可能需要调整syslog守护程序配置,以便将每个工具发送到不同的文件.
Apache 具有跨平台日志记录库,允许您使用类似的 API 从各种编程语言进行日志记录。不幸的是,他们没有 Python API,尽管您应该能够使用 log4cpp 和 Boost.Python 快速创建一个 API。
我从事的一个项目使用这些库之一来记录到数据库,这允许我们“分布式日志记录”并集中存放日志消息。我必须承认我不喜欢这个。我从事的另一个项目使用这些库之一来记录到本机日志记录工具。Windows 事件日志具有一些分布式日志记录功能,但据我所知 syslog 没有。
虽然我没有任何经验,但更适合的可能是Facebook 的 Scribe项目。该功能集满足您的要求,包括 Python API。不幸的是,它使用的 Thrift 不适用于 Windows 上的 C++(也就是说,Thrift 编译器生成仅适用于 UNIX 的 C++ 代码)。您也许可以使用 Cygwin 解决这个问题,但我不能保证这种方法会起作用。
归档时间: |
|
查看次数: |
2047 次 |
最近记录: |