我正在编写一个非 Android JNI 程序,而 java 端正在使用 log4j 进行日志记录。我可以在 C++ 端使用 log4cxx 或 log4cpp 并与 java 共享相同的配置,以便将本机日志存储在同一个文件中吗?这样做有什么缺点吗?
问问题
228 次
1 回答
0
这可能会也可能不会按预期工作,具体取决于您的配置文件的复杂程度。例如,您可能会遇到文件翻转的问题,并且 log4cxx 端和 log4j 端之间的事情可能会不同步。
您可能遇到的第二个问题是 log4cxx 和 log4j2 使用不同的配置文件格式;这仅在您使用 log4j 1.x 时才有效。
我过去所做的只是在我将从 JNI 代码调用的类中创建一个记录器;这通过始终使用 Java 记录器(即使从 JNI 代码内部)来解决问题。缺点是如果您的 JNI 代码非常复杂,这将不起作用。 这是我不久前创建的一个项目,其中包含一些实用功能来帮助执行此任务,这可能会帮助您入门。
于 2021-07-05T01:32:34.157 回答