我正在使用 connect-log4j 属性在 Kafka JDBC 接收器连接器启动时进行日志记录。 我正在尝试覆盖 connect-log4j.properties 中我的 shell 脚本的值。
我的 Shell 脚本:
echo "Starting consumer"
/bin/connect-distributed -daemon /connect/connect-distributed.properties.
我的 log4j 属性:
log4j.rootLogger=INFO, stdout, file base.log.dir=/kafka/logs/
//从Shell脚本命令获取process.name
process.name=?????
log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c:%L)%n log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=${base.log.dir}/${process.name}.log
我能够通过传递创建 test.log 的 process.name=test 来创建日志。但是我找不到任何信息来覆盖我的 shell 脚本中的“process.name”值。感谢您的帮助。
最佳答案
我怀疑您可以使用 Log4J MDC 完成您尝试做的事情吗? http://www.baeldung.com/mdc-in-log4j-2-logback
关于java - 如何从 shell 脚本覆盖 Log4j 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49762018/