【问题标题】:Log4j working fine on localhost, but in jenkins, all log statements printed on same lineLog4j 在 localhost 上工作正常,但在 jenkins 中,所有日志语句都打印在同一行
【发布时间】:2014-04-24 12:35:46
【问题描述】:

执行完测试用例后,所有的日志步骤都会被写入一个文件。如下图。

  • 在本地机器中执行后创建的日志文件:

[INFO ][2014-04-16 16:49:02,945] - 从数据源文件中读取数据属性

[INFO][2014-04-16 16:49:02,945] - DataSource.properties 文件路径

  • 在 JENKINS 中执行测试用例后创建的日志文件

[INFO][2014-04-21 08:08:27,134] - 从 dataSource 文件中读取数据属性 [INFO][2014-04-21 08:08:27,135] - DataSource.properties 文件路径

在 Jenkins 中,完成第一个日志语句后,将添加第二个语句。但我的要求是第一行的第一个语句,第二行的第二个语句。那么如何在 Log4j 中指定下一行字符呢?

【问题讨论】:

    标签: java jenkins selenium-webdriver log4j


    【解决方案1】:

    在 Log4j(v1 或 v2)中,您可以在 PatternLayout 中使用 %n 插入换行符。 您可以在此处阅读有关 Log4j 模式的更多信息:

    以下是 Log4j 配置示例:

    • Lo​​g4j v1:log4j.appender.FileAppender.layout.ConversionPattern=%-5p [%t] %m%n
    • Lo​​g4j v2:<PatternLayout pattern="%-5p [%t] %m%n"/>

    【讨论】:

    • 实际上我给了模式 ="[%-5p][%9d] - %m%n" 像这样。它在本地(windows os)机器上工作正常但是当我运行相同的模式时linux机器中的代码所有日志都在同一行中创建
    • 您是否尝试过在 Linux 上打开 vim/vi 中的日志文件?如果您在 Windows 上打开日志文件,但该文件是由 Linux 编写的,则使用 \n 并且 Windows 需要 \r\n 插入新行。简而言之,也许新行就在这里,但您在 Windows 上看不到它
    • 感谢您的回复。实际上 linux 机器位于不同的位置,通过 jenkins 我们正在执行代码。并将日志文件创建为 zip 文件并通过电子邮件发送。请给我解决问题的方法。
    • 使用 Notepad++ 或任何其他高级文本编辑器打开您的日志文件。也许您的日志文件不会在同一行插入所有事件。阅读我之前的评论。
    • %n 是模式中给出的 cammand,这是否适用于 linux 机器的新行..但它不起作用?
    猜你喜欢
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 2020-03-27
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    相关资源
    最近更新 更多