java应用程序如何自定义log4j配置文件的位置

 更新时间:2021年12月23日 10:00:42   作者:softmaker_tao  
这篇文章主要介绍了java应用程序如何自定义log4j配置文件的位置,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

自定义log4j配置文件的位置

使用log4j很方便

1、添加依赖的log4j-1.2.8.jar包;

2、增加log4j.properties配置文件,但这个配置文件应该放在哪个目录下比较合适,今天来讨论下:如何自定义配置文件的存放位置,尤其是代码需要打包运行的时候就需要考虑这个问题。

一般情况,不论是java应用程序还是web程序,代码编译成功且能正常运行的情况下,log4j.properties配置文件会在com的同级目录下有一个拷贝,如图所示为java工程和web工程,都可以正常打印输出日志信息。

该java工程的bin目录下和com同级有一个log4j.properties的拷贝。

该web工程的classes目录下和com同级有一个log4j.properties的拷贝。

当java代码需要打包运行的时候,将log4j.properties配置文件存放到指定目录是个比较好的选择,便于发布和维护,如图就是将已发布好的目录结构,应用代码打包成rwd_app.jar,配置文件放到config目录下,代码运行时从自定义的目录中加载日志配置文件。

log4j因配置文件放置位置出错

ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2

jar版本

log4j-1.2.17;log4j-api-2.11.1;log4j-core-2.11.1

因为学习Mybatis初次接触到log4j,出现以上的的报错信息。

通过它的报错信息可以知道缺少配置文件,但是我们已经在资源文件夹下创建了对应的文件目录及log4j.properties配置文件。

网上某些解决办法是由于我们的log4kj是2.x版本,所以配置文件设置的是log4j2.xml,以下是它的内容,在官方文档上可以找到。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="error">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

可是创建这个文件后依旧是这个错误,那么我就怀疑是不是log4j包里面设置的就是在资源文件夹的根目录下,移动到根目录下果然问题解决了。目录层级如下图:

新的问题是如果把之前创建的log4j.properties配置文件放到资源文件夹根目录下是不是有效。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot多环境配置教程详解

    SpringBoot多环境配置教程详解

    当开发真实的项目时,可能会遇到不同的环境,不同的环境所需要的配置内容也会不尽相同,所以,掌握多环境配置还是非常有必要的。本文为大家准备了SpringBoot多环境配置教程,需要的可以参考下
    2022-06-06
  • 浅谈MyBatis所有的jdbcType类型

    浅谈MyBatis所有的jdbcType类型

    在Mybatis中JdbcType类型是一个枚举类型,它包含了所有的JDBC数据类型,如VARCHAR、INTEGER、DATE等,本文主要介绍了浅谈MyBatis所有的jdbcType类型,具有一定的参考价值,感兴趣的可以了解一下
    2023-06-06
  • 一篇文章带你入门java注解

    一篇文章带你入门java注解

    这篇文章主要介绍了Java注解详细介绍,本文讲解了Java注解是什么、Java注解基础知识、Java注解类型、定义Java注解类型的注意事项等内容,需要的朋友可以参考下
    2021-08-08
  • 使用@JsonFormat和@DateTimeFormat对Date格式化操作

    使用@JsonFormat和@DateTimeFormat对Date格式化操作

    这篇文章主要介绍了使用@JsonFormat和@DateTimeFormat对Date格式化操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java创建型设计模式之抽象工厂模式(Abstract Factory)

    Java创建型设计模式之抽象工厂模式(Abstract Factory)

    当系统所提供的工厂所需生产的具体产品并不是一个简单的对象,而是多个位于不同产品等级结构中属于不同类型的具体产品时需要使用抽象工厂模式,抽象工厂模式是所有形式的工厂模式中最为抽象和最具一般性的一种形态
    2022-09-09
  • 用JAVA 设计生成二维码详细教程

    用JAVA 设计生成二维码详细教程

    本文主要介绍用JAVA 设计生成二维码,这里一步一步详细介绍用 java 如何设计二维码,并附有代码示例以便参考,有需要的小伙伴可以参考下
    2016-08-08
  • Gradle修改本地仓库的位置方法实现

    Gradle修改本地仓库的位置方法实现

    这篇文章主要介绍了Gradle修改本地仓库的位置方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 解决Springboot中@Async注解获取不到上下文信息问题

    解决Springboot中@Async注解获取不到上下文信息问题

    实际开发中我们经常需要通过spring上下文获取一些配置信息,本文主要介绍了解决Springboot中@Async注解获取不到上下文信息问题,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • SpringBoot整合OpenFeign的坑

    SpringBoot整合OpenFeign的坑

    最近试用SpringBoot+K8S,遇到了个坑,通过OpenFeign请求返回值LocalDateTime发生了异常,本文就详细的介绍一下解决方法,感兴趣的可以了解一下
    2021-07-07
  • Java中操作Word修订功能的示例详解

    Java中操作Word修订功能的示例详解

    Word的修订功能是一种在文档中进行编辑和审阅的功能,它允许多个用户对同一文档进行修改并跟踪这些修改,以便进行审查和接受或拒绝修改,下面我们就来学习一下Java中操作Word修订功能的方法,需要的可以参考下
    2023-12-12

最新评论