我可以在 JNI 项目中使用 Java 中的 log4j 和 C++ 中的 log4cxx 将日志存储在同一个文件中吗?

我正在写一个非Android JNI程序,java端使用log4j进行日志记录。我可以在 C++ 端使用 log4cxx 或 log4cpp 并与 java 共享相同的配置,以便将本机日志存储在同一文件中吗?这样做有什么缺点吗?

iCMS 回答:我可以在 JNI 项目中使用 Java 中的 log4j 和 C++ 中的 log4cxx 将日志存储在同一个文件中吗?

这可能会或可能不会按预期工作,具体取决于您的配置文件的复杂程度。例如,您可能会遇到文件滚动的问题,并且 log4cxx 端和 log4j 端之间可能会不同步。

您可能遇到的次要问题是 log4cxx 和 log4j2 使用不同的配置文件格式;这仅在您使用 log4j 1.x 时才有效。

我过去所做的只是在我将从 JNI 代码中调用的类内部创建一个记录器;这通过即使在 JNI 代码内部也始终使用 Java 记录器来解决该问题。缺点是如果您的 JNI 代码非常复杂,这将不起作用。 Here 是我不久前创建的一个项目,其中包含一些实用函数来帮助执行此任务,这可能会帮助您入门。

本文链接:https://www.f2er.com/161607.html

大家都在问