log4j配置文件读取的几种方式

  1. IDEA中,将配置文件命名为log4j.properties(该命名才会被自动加载), 并放到某个目录下(通常放到resources目录),并在resources上右键,找到Mark Directory as 选中Resources Root(如果时test目录中,就选中Test Resources Root)。
    • 跑src下的程序会使用resources下的配置文件
    • 跑test的会先从test resource里找,找不到去resources里找,再找不到抛异常
  2. 任意命名,在程序中人为指定配置文件目录:
import org.slf4j.LoggerFactory
import org.apache.log4j.PropertyConfigurator
val path="D:\\git\\mytest\\src\\test\\resources\\log4j-test.properties"
private val LOGGER = LoggerFactory.getLogger(this.getClass)
PropertyConfigurator.configure(path) //人为指定
  1. 如上述这样初始化有点繁琐,因为一般一个java工程一个log4j 配置文件就够了,所以我们在运行java主程序的时候通过附加参数可以实现该功能,如下:
-Dlog4j.configuration=file:{path to file}

# 例如,提交spark任务:
export executorJavaOpts=$(cat ${SPARK_HOME}/conf/spark-defaults.conf | grep "spark.executor.extraJavaOptions"|sed 's/-Dlog4j\.configuration=\.\/log4j-executor\.properties/-Dlog4j\.configuration=\.\/log4j-test-executor\.properties/') #遗留:为什么不用绝对路径?
export driverJavaOpts=$(cat ${SPARK_HOME}/conf/spark-defaults.conf | grep "spark.driver.extraJavaOptions"|sed 's/-Dlog4j\.configuration=file:\/home\/Spark2x\/spark\/conf\/log4j\.properties/-Dlog4j\.configuration=file:\/home\/mytest\/config\/log4j-test\.properties/')

# 提交spark任务时
--conf "spark.executor.extraJavaOptions= ${executorJavaOpts:34}" \
--conf "spark.driver.extraJavaOptions= ${driverJavaOpts:32}" \
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值