【发布时间】:2013-10-06 09:16:03
【问题描述】:
我使用带有在 java 库中实现的自定义关键字的 Robot Framework。从我的 java 类直接写入 System.out 的消息在机器人输出中可见 - 正如文档中所承诺的那样。但是,由于关键字实现是可重用的组件,独立于机器人框架,我希望在那里有更灵活的日志记录,而不是直接使用 System.out。我想如果我将我的日志输出重定向到 System.out(使用 log4j 的 ConsoleAppender),这些消息将在机器人输出中可见。不幸的是,它不起作用。
我的 log4j 属性文件:
log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
log4j.appender.Stdout.Target=System.out
log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.Stdout.layout.conversionPattern=%d %-5p [%t] %F:%L %m%n
log4j.appender.Stdout.ImmediateFlush=true
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=mylog.log
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%d %-5p [%t] %F:%L %m%n
log4j.rootLogger=INFO,Stdout,FA
文件附加程序工作正常,日志文件已创建并包含所有日志消息,但相同的消息在控制台或机器人输出报告中不可见。当我在没有机器人框架的情况下运行组件时,相同的配置也适用于控制台。
您知道上述配置有什么问题吗?或者在避免从我的 java 类中直接使用 System.out 的同时获得机器人日志的任何其他建议?
【问题讨论】:
-
您是使用 Process 库还是 OperatingSystem 库来运行您的 java 进程?
-
我在 Windows 7 上使用 JDK 1.7.0 (25)。
标签: log4j robotframework