白云LDC 2023-11-19 21:05 采纳率: 40%
浏览 6

Android Studio如何调用log4j-core依赖?

Android Studio调用

Workbook workbook = new XSSFWorkbook();

时报错:ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
添加的依赖有:

    // https://mvnrepository.com/artifact/org.apache.poi/poi
    implementation group: 'org.apache.poi', name: 'poi', version: '5.2.4'
    // https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml
    implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '5.2.4'
    // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core
    annotationProcessor group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.21.1'
    // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api
    implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.21.1'

网上有很多解决这个问题的贴子,不过,都是IDEA的平台上,而不是在Android Studio上。还说要添加一个log4j2.xml。我也添加了,不过任然不管用。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-19 22:17
    关注

    【以下回答由 GPT 生成】

    首先,确保您已经在log4j-core依赖项中添加了正确的版本号,并且该依赖项已经成功同步到您的项目中。

    在Android Studio中,可以通过以下步骤来正确调用log4j-core依赖项:

    1. 确保您的项目的build.gradle文件中已经正确配置了mavenCentral()仓库。您可以在文件中的repositories部分添加以下代码:
    repositories {
        mavenCentral()
    }
    
    1. 在您的项目的build.gradle文件(不是模块级别的build.gradle文件)中,添加log4j2.xml配置文件。在该文件中,您可以定义日志记录器的配置细节,比如日志输出位置等。在这个例子中,我们可以将log4j2.xml文件放在项目的src/main/res/raw目录下。添加以下代码到build.gradle文件中:
    android {
        //...
        sourceSets {
            main {
                resources {
                    srcDir 'src/main/res'
                }
            }
        }
    }
    
    1. app模块的build.gradle文件中添加日志依赖项,并排除与Android冲突的日志库。在dependencies部分添加以下代码:
    implementation ('org.apache.logging.log4j:log4j-core:2.21.1') {
        exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
        exclude group: 'org.apache.logging.log4j', module: 'log4j-slf4j-impl'
        exclude group: 'org.slf4j', module: 'slf4j-api'
    }
    
    1. app模块的build.gradle文件中,添加log4j.properties文件。该文件包含了log4j2的详细配置。在这个例子中,我们可以将log4j.properties文件放在项目的src/main/assets目录下。添加以下代码到build.gradle文件中:
    android {
        //...
        sourceSets {
            main {
                assets.srcDirs = ['src/main/assets', 'src/main/assets/']
            }
        }
    }
    
    1. assets目录中添加log4j.properties文件。在该文件中,您可以根据需要修改日志记录器的配置。以下是一个简单的示例配置文件:
    # log4j.properties
    
    # 配置日志输出到控制台
    status = error
    dest = out
    name = PropertiesConfig
    
    # 设置日志格式
    property.filename = logs/mylog.log
    
    # 定义日志输出的格式
    appender.console.type = Console
    appender.console.name = STDOUT
    appender.console.layout.type = PatternLayout
    appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%c{1}] %m%n
    
    # 定义日志输出的格式和日志文件的位置
    appender.file.type = File
    appender.file.name = File
    appender.file.fileName = ${filename}
    appender.file.layout.type = PatternLayout
    appender.file.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%c{1}] %m%n
    
    # 配置日志级别
    rootLogger.level = INFO
    rootLogger.appenderRef.file.ref = File
    
    # 将控制台日志输出和文件日志输出关联
    rootLogger.appenderRef.stdout.ref = STDOUT
    
    1. 使用log4j-core进行日志记录。您可以在应用程序的任何位置使用LogManager.getLogger()方法来获取日志记录器实例,并使用不同的日志级别方法来记录日志。例如:
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    
    public class MainActivity extends AppCompatActivity {
    
        private static final Logger logger = LogManager.getLogger(MainActivity.class);
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            logger.error("This is an error message");
            logger.warn("This is a warning message");
            logger.info("This is an info message");
            logger.debug("This is a debug message");
            logger.trace("This is a trace message");
        }
    }
    

    请注意,以上步骤仅供参考,并且可能需要根据您的具体情况进行微调。如果您按照以上步骤操作仍然无法调用log4j-core依赖项,建议您仔细检查配置是否正确,检查依赖项版本是否与其他库产生冲突,并确保日志配置文件正确加载。如果问题仍然存在,请尝试搜索更多关于在Android Studio中使用log4j的示例和文档,或者请参考相关论坛或开发者社区寻求帮助。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月19日

悬赏问题

  • ¥15 from seleniumwire import webdriver 在抓取http://链接的时候会自动转https://这个怎么解决
  • ¥15 BAT根据上两级文件夹重新命名文件要求BAT
  • ¥30 不会,学习,有偿解答
  • ¥15 SQL查询语句报错(检查)
  • ¥15 此表中公式应该怎么写
  • ¥15 求HI-TECH PICC 9.50 PL3安装包
  • ¥15 下载ctorch报错,求解
  • ¥15 如何入门学习c语言,单片机
  • ¥15 idea 编辑语言的选择
  • ¥15 Windows下部署Asmjit