【问题标题】:Common Logging in TalendTalend 中的常用日志记录
【发布时间】:2017-01-26 17:06:19
【问题描述】:

我试图在 Talend 中实现日志记录。所以我用普通的组件做了一个工作,我通过 Twarn 和 Tdie 记录了错误、信息和调试。 使用 Logcatcher ,我将日志分为调试和错误两个文件。 这部分工作正常。

现在我做了两份工作,

首先:- 使用 trowgenerator 生成线,然后发送到 tmap 和从 tmap,我根据某些条件发送到两个 twarn 组件。

第二个:- 具有 tlogcatcher、t_filterrow 并根据某些条件分离到两个文件的作业。

所以我正在与第一个作业并行运行第二个作业以捕获日志,但它不起作用。

我已经尝试了几个选项并停留在这一点上。

主要思想是有一个通用的日志记录组件,可以插入到任何日志作业中。

有什么方法可以实现吗?

【问题讨论】:

  • 您能否尝试将 tlogcatcher 和将日志分离到文件中的逻辑保留在一个作业中,然后将此作业(使用 tRunJob)包含在您的第二个作业中,并且只运行第二个作业..
  • 已尝试此选项,但无法正常工作。浏览了 tRunjob 的文档,它说在另一个子作业完成后触发了一个子作业。尝试不同的选择。

标签: talend talend-mdm


【解决方案1】:

以下是弹出的 3 种方式:

log4j:企业版内置了log4j,这意味着你可以在tWarn/tDie中设置一个调试级别,并配置log4j将它们放到不同的文件中。 (使用它时,我发现最好将警告作为我自己的信息级别日志,因为 talends 信息级别太深了。) 我敢肯定 log4j 也可以被“入侵”到开放工作室。那会解决你的问题。 https://exchange.talend.com在搜索log4j时有很多结果,你应该看看。

joblet:如果您更喜欢当前的方式,我看到 2 个选项,适合您。首先是尝试创建一个joblet,但是从多个作业中使用同一个文件不是一个好主意,并且可能会导致错误。这不是一个很好的解决方案,但如果我们只讨论需要生成 2 个文件的 1 个作业,它就可以工作。

项目级日志记录:您可以尝试启用项目级日志记录,但这会将所有内容记录到文件中。它基本上意味着将 logcatcher 输出重定向到文件。那是 1 个文件而不是 2 个文件,但至少它有效。 https://help.talend.com/display/TalendOpenStudioforBigDataUserGuide520EN/2.6+Customizing+project+settings(统计和日志)

确实没有很好的解决方案来满足您的需求。

【讨论】:

  • 我正在研究 log4j 的 Talend Open Studio 选项,但我想澄清一点。我的项目中有多个作业,当我运行任何人时,我想根据信息或错误生成 2 个文件。
  • 使用 log4j,您可以将日志按级别重定向到不同的附加程序(1 表示信息 1 表示错误 1 ​​表示所有等)
【解决方案2】:

Talend 具有可用的内置日志记录功能,并且非常易于设置。步骤 1:创建 AMC 数据库。步骤 2. 设置记录的项目级别属性。步骤 3. 检查 AMC 数据库的日志。将记录所有错误和 tWarns。可选步骤 4:根据 AMC 数据库中的记录数据创建报告。

您可以记录到文件而不是数据库,但记录到数据库允许更强大的查询和报告。此外,如果您在 TAC 之外运行作业,您可以将 AMC 加入 TAC 数据库,以获得关于您的作业的一些非常有用的报告。

您可以登录:

  • 错误和警告
  • 统计数据(工作持续时间)
  • FlowMeter(数据流指标)

屏幕 1 显示 Talend Studio 中的项目设置

屏幕 2 显示了来自 AMC db 日志表的查询。请注意,还有另外两个表,一个用于统计信息,另一个用于流量。另请注意,在所选行中有来自 tWarn 的消息。

【讨论】:

  • 感谢您的解释。我已经使用了这个部分,但我想为 Talend 构建一个日志组件,该组件可用于任何作业,它为单个作业而不是整个项目创建不同级别的日志文件。
  • 为什么不按照我上面的示例记录所有内容,然后在报告中提取您需要的信息,这些信息可以由 Job 分解?这可能比您提出的要简单,并且您可能会发现额外的信息很有用。你也在使用 TAC 吗?如果是这样,您可以通过连接 2 个数据库来构建出色的报告。
  • 因为如果你想将它部署到防火墙后面的 100 台机器上,那么 logDB 不是一个选项。我不认为他有 TAC,因为这样 log4j 就会在那里,开箱即用。
【解决方案3】:

感谢大家的支持。我能够实现我想要实现的目标。

我创建了一个标准作业,它提供 twarn 和 tdie 日志。 然后我有一个joblet,它可以捕获日志并根据错误或信息/调试分发日志。

【讨论】:

  • 我是 Talend 新手,正在寻找相同的作业错误框架。寻找可以在我们想要捕获详细的 lob 日志时将其放到任何工作中并且可以由产品支持团队等轻松读取的 joblet。在数据阶段存在的东西。我尝试了 AMC 配置,但我们有不同的 dB 表同样。提到你能够实现它,想知道它是如何实现的,并且工作设计参考将非常感激。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-31
相关资源
最近更新 更多