java—从android项目中使用的jar进行日志记录

wa7juj8i  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(527)

我已经创建了一个java库,用于android项目。因为我需要jar来生成日志语句,所以我选择了log4j实现,它在我的项目中运行良好。但当项目被存档并用于android项目时,会抛出以下错误:

Caused by: java.lang.ClassNotFoundException: Didn't find class "java.beans.Introspector" on path: DexPathList[[zip file   "/data/app/com.heb.paxpayapp-yDktv3EaH6Ky6U6ANLZU3A==/base.apk"],nativeLibraryDirectories=[/data/app/com.heb.paxpayapp-yDktv3EaH6Ky6U6ANLZU3A==/lib/x86_64, /system/lib64, /vendor/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at org.apache.log4j.config.PropertySetter.setProperty(PropertySetter.java:155) 
    at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:130) 
    at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:97) 
    at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:684) 
    at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:647) 
    at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:544) 
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:440) 
    at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:367) 
    at com.heb.driver.PaymentDriver.<init>(PaymentDriver.java:93)

这是因为以下代码:

Properties props = new Properties();
props.load(getClass().getResourceAsStream("/resources/log4j.properties"));
PropertyConfigurator.configure(props);

在这种情况下,日志框架和依赖项应该是什么?
看到propertyconfigurator.configure(props)在android中由于bean依赖性而无法工作。加载log4j属性的替代解决方案是什么。我应该为simplelayout、fileappenders创建java配置来动态加载log4j属性吗?
请分享你的想法。任何例子都会很有帮助。

1szpjjfi

1szpjjfi1#

只是在代码本身中编写了记录器配置,并在静态块中对其进行了临时初始化。我将把它移到一个不同的项目,作为一个不同的日志库。

相关问题