当前位置: 首页 > 面试题库 >

使用log4j以编程方式创建不同的日志文件

芮瑾瑜
2023-03-14
问题内容

我有一个自动化的集成测试工具,想简化日志记录(使用log4j实现)

我有许多高级测试,每个测试都有一个ID,并且每个测试都需要一个 单独的 日志文件。由于测试是随机创建的,因此直到运行时才知道ID。

因此,我想确保将每个高级测试中的日志记录写到该测试的日志文件中。

我不想创建自定义日志级别,也不想将日志发送到所有附加程序。

有人知道这样做的方法吗?


问题答案:

您可以轻松地以编程方式调用log4j的API,例如

FileAppender appender = new FileAppender();
// configure the appender here, with file location, etc
appender.activateOptions();

Logger logger = getRootLogger();
logger.addAppender(appender);

所述logger可根记录器如在本例中,或向下树中的任何记录程序。您的单元测试可以在Steup期间添加其自定义追加程序,并removeAppender()在拆卸期间(使用)删除该追加程序



 类似资料:
  • 大家好,我的社区, 我正在编写一个多线程应用程序,其中需要使用log4j为每个线程输出一个日志文件。理想情况下,我希望为每个线程运行一个单独的日志实例。我正在辩论我应该如何处理这个问题。因为每个日志实例的文件输出位置不同,所以我需要更新每个实例的属性。现在,我正在尝试创建一个新的记录器,将新属性设置到属性对象中,并使用

  • 我有一个用例,我必须为我的所有记录器使用不同的文件名,我正试图在log4j2中以编程方式使用一个文件追加器 我正在使用以下XML文件来配置Log4j的启动 然后,我使用以下代码添加一个文件appender到我的记录器: 以上代码是log4j2文档的逐字复制(http://logging.apache.org/log4j/2.x/manual/customconfig.html#AddingToCu

  • 问题内容: 我正在尝试配置log4j以将消息记录到文件中。现在,确实使用我提供的名称创建了该文件,但是日志未写入该文件。我的代码: 我文件的内容: 运行此命令时,将在控制台中获得以下输出: 该文件确实在我的主目录中创建。但是它是空的。 有什么想法我做错了吗?我正在使用log4j 1.2.17版。 问题答案: 输出似乎是Java标准日志记录框架(JUL)发出的默认格式。 因此,有两种可能性(想到):

  • 我使用log4j进行日志记录,并且使用.log格式的所有日志文件,其结构简单,如; log4j.rootcategory=info,C,R log4j.appender.c=org.apache.log4j.consoleappender log4j.appender.c.layout=org.apache.log4j.patternlayout log4j.appender.r.layout=o

  • 问题内容: 我正在尝试为不同的软件包设置单独的日志文件。我正在使用Wrapper类作为记录器。我的应用程序中的每个类都调用相同的包装器类。我的包装器类: 它的名称如下: 有没有一种方法可以配置log4j,以便将不同包的日志记录输出到不同文件? 谢谢! 编辑: 这是我的文件: 问题答案: 如果在MyLogger类中创建静态Logger,则您将有一个Logger实例,其名称设置为MyLogger。当您

  • 问题内容: 我想在我的Java项目中使用Log4j,我应该在配置文件中提供该配置,该配置文件每天晚上12:00将生成一个新文件,并且文件名应类似于 -output- log-of-MyProjectName-HostName-2013-Dec-10。 txt 名称)。我的配置文件就是这样- 它每天都在创建新文件,但在文件名后附加日期。请帮我。提前致谢。 问题答案: 我认为您想要DailyRolli