log4j - log4j 无法使用 FileAppender 收集子 Talend 作业的日志
问题描述
我正在使用 Talend DI 7.1 及其涉及的 log4j 1.2。
我的 Talend 作业具有主/父作业:M_1 和两个子作业:C_11 和 C_12(使用 tRunJob 从 M_1 调用)。
在 log4j 的配置中 & 使用 DailyRollingFileAppender :
- 如果文件名参数是硬编码,例如“/tmp/talend_log4j_logs.log”。
- 该文件正在正确创建和翻转。
- 正确捕获所有 M_1、C_11、C_12 的日志。
在作业可执行项目属性中参数化文件名路径时会出现问题。即:M_1_run.sh 有一个参数,比如 LOG_FILE="/tmp/talend_log4j_logs.log" ,它的使用类似于 java -D LOG_FILE=$LOG_FILE。
- 现在当这个 $LOG_FILE 用于 DailyRollingFileAppender "file" 参数值时。
- 此参数适用于父作业 M_1,但无法收集有关 C_11 和 C_12 的任何信息。
请建议。
解决方案
在编辑/项目下的 Talend studio 的 shell 设置中,您可以使用以下内容:
export _java_options="-DLogFileName=$LOGDIR/${talend.job.name}.log"
这将执行系统属性设置以设置日志文件路径
推荐阅读
- scala - 火花组和减少基于相邻行以及单行
- json - 使用 Circe 解码对象序列
- vb.net - 如何关闭使用窗口句柄嵌入的嵌入窗口?
- r - 如何获得 3 个数据帧的 z 分数分布并在一张图中全部绘制
- vala - 重用信号处理程序?
- php - simpleSAML 远程被动登录
- r - 对数据框中的所有变量执行相同的变异
- python - Python order 具有预定义顺序的字典
- angular - 如何使用来自其他 Angular 组件的`templateref`?
- node.js - 使用 node.js 使用 jira-connector 库从 jira 获取 json 数据在 heroku 中部署时不起作用