混合log4cxx和log4net 我有一个C++应用程序,它使用Log4Cxx(RollingFile AppEnter)登录到一些文件。我想同时从另一个用c#编写的模块登录到同一个文件中;因此,我将log4net配置为使用同一个文件,但无法获取新消息。如果我停用C++日志记录,我可以看到C语言消息。所以我认为这是一个锁定问题,并寻找一个配置选项来告诉log4cxx不要锁定该文件。我进入log4net的最小锁模型,但在log4cxx中找不到任何东西。。。有人知道这是否可以实现,以及如何实现吗

混合log4cxx和log4net 我有一个C++应用程序,它使用Log4Cxx(RollingFile AppEnter)登录到一些文件。我想同时从另一个用c#编写的模块登录到同一个文件中;因此,我将log4net配置为使用同一个文件,但无法获取新消息。如果我停用C++日志记录,我可以看到C语言消息。所以我认为这是一个锁定问题,并寻找一个配置选项来告诉log4cxx不要锁定该文件。我进入log4net的最小锁模型,但在log4cxx中找不到任何东西。。。有人知道这是否可以实现,以及如何实现吗,log4net,log4cxx,Log4net,Log4cxx,提前感谢, Ernesto Cullen我认为,只要您试图将两个不同的进程记录到同一个文件中,无论您使用何种配置,都可能会遇到并发和争用问题 您应该考虑将日志事件从两个进程发送到第三个集中的位置—查看一下log4net,我认为log4cxx有类似的功能。即使问题很老(并标记为已回答),而且您可能已经完成了您的项目: log4net和log4cxx是不同的日志framworks,它们彼此不了解,因此您无法将它们配置为写入同一文件。只有一个framworks将打开该文件进行写入,以先到者为准 我在类

提前感谢,


Ernesto Cullen

我认为,只要您试图将两个不同的进程记录到同一个文件中,无论您使用何种配置,都可能会遇到并发和争用问题


您应该考虑将日志事件从两个进程发送到第三个集中的位置—查看一下log4net,我认为log4cxx有类似的功能。

即使问题很老(并标记为已回答),而且您可能已经完成了您的项目:

log4net和log4cxx是不同的日志framworks,它们彼此不了解,因此您无法将它们配置为写入同一文件。只有一个framworks将打开该文件进行写入,以先到者为准

我在类似的情况下做过的事(一个遗留的C++应用程序,使用Log4NET定制日志记录一个新的C模块)是将跟踪转发到旧的日志框架中。在我参与的项目中,旧的C++代码有一个Windows COM接口来编写自定义的附加器使用的日志消息。 另一种方法是使用C++/CLI创建自定义appender