java - 如何从 shell 脚本覆盖 Log4j 值?

标签 java linux apache-kafka log4j confluent-platform

我正在使用 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/

相关文章:

java - 在这个 Kafka 设置下,这是正确的 Kafka 消费者配置吗?

java - 1 个项目和 2 个库中的 Android 支持库

java - 我怎样才能告诉我的表单控件的值发生了变化?

php - 为什么我的 .php 扩展文件不能在 cgi-bin 文件夹(linux 服务器)中作为 CGI 工作?

linux - 使用 xargs 在一行中执行带有各种变量的命令

apache-kafka - 主题 "marked for deletion"何时/如何最终被删除?

java - 如何迭代arraylist中的两个int数组

java - Hyperjaxb3 : How do I get it to use a superclass' id?

linux - 以前从 yum 安装时如何从源更新 subversion (svn)

file - 如何将文件写入Kafka Producer