|
9
|
| recipriversexclusion · 技术社区 · 16 年前 |
|
|
1
1
阿帕奇 cross-platform logging libraries ,允许您使用类似的API从各种编程语言登录。不幸的是,它们没有python API,不过您应该能够使用log4cpp和boost.python来创建一个API。 我所从事的一个项目使用这些库中的一个来登录到数据库,这样我们就可以“分布式日志记录”日志消息的集中位置。我得承认我不喜欢这个。我工作的另一个项目使用这些库中的一个来登录到本机日志记录设施。Windows事件日志具有分布式日志记录的一些功能,但Afaik Syslog没有。 虽然我没有这方面的经验,但更适合的可能是 Facebook's Scribe 项目。特性集满足您的需求,包括一个PythonAPI。不幸的是,它使用的节省在Windows上不适用于C++(也就是说,节约编译器生成只在UNIX上工作的C++代码)。您可以使用Cygwin解决这个问题,但我不能保证这种方法会奏效。 |
|
|
2
5
我建议使用平台的本机记录器,即POSIX上的Syslog和Windows上的事件日志。 对于C++,可以在平台上使用本机调用。 我知道python在posix上附带了syscall包装器,并且在 PyWin32 extension . 我假设现在已经有人创建了Java包装器。 更新
关于系统日志和多个文件。Syslog支持设施的概念-通过设施,您可以将不同的日志转到不同的文件。不幸的是,设施是预先定义的;而有8个通用的设施
还要注意,由syslog守护进程决定为每个设施/级别路由日志消息的位置。您可能需要调整系统日志守护程序配置,以便将每个工具发送到不同的文件。 |
|
|
3
1
我会用 Apache log4cxx或Apache log4j . 它很有效。它有日志记录器层次结构来模块化日志。这已经被证明是一段时间的技术。 目前,控制台、文件、GUI组件、远程套接字服务器、NT事件记录器和远程UNIX系统日志守护进程都有附加程序。也可以异步记录。 如何支持分布式日志记录? 例如,使用远程套接字服务器附加器。 |