当前位置: 首页 > 工具软件 > OpenEJB > 使用案例 >

linux部署hsql log4j,java – 如何配置OpenEJB日志记录?

翟俊哲
2023-12-01

请记住,使用OpenEJB记录器获得的覆盖能力适用于系统属性以及InitialContext属性.

openejb.logger.external属性实际上是针对集成OpenEJB的服务器,例如Geronimo,他们使用不同的日志系统并需要对日志记录进行高级控制.它不是为常用而设计的,因为启用了此选项并且没有采取其他步骤,您没有任何类型的日志记录,甚至没有ERROR,也没有关于失败部署的信息.即使正确使用仍将禁用下面讨论的所有选项.

如果希望将测试配置输入或输出测试,可以通过多种方式完成测试,而不会丢失OpenEJB提供的任何日志记录功能.

选项1:通过InitialContext属性在代码中

在测试用例中,通过InitialContext属性

Properties p = new Properties();

p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");

p.put("log4j.rootLogger", "fatal,C");

p.put("log4j.category.OpenEJB", "warn");

p.put("log4j.category.OpenEJB.options", "warn");

p.put("log4j.category.OpenEJB.server", "warn");

p.put("log4j.category.OpenEJB.startup", "warn");

p.put("log4j.category.OpenEJB.startup.service", "warn");

p.put("log4j.category.OpenEJB.startup.config", "warn");

p.put("log4j.category.OpenEJB.hsql", "warn");

p.put("log4j.category.CORBA-Adapter", "warn");

p.put("log4j.category.Transaction", "warn");

p.put("log4j.category.org.apache.activemq", "error");

p.put("log4j.category.org.apache.geronimo", "error");

p.put("log4j.category.openjpa", "warn");

p.put("log4j.appender.C", "org.apache.log4j.ConsoleAppender");

p.put("log4j.appender.C.layout", "org.apache.log4j.SimpleLayout");

p.put("openejb.nobanner", "false");

Context context = new InitialContext(p);

选项2:jndi.properties文件

文件必须位于任何评估为“/jndi.properties”的路径的类路径中,因此不是“/META-INF/jndi.properties”

在Maven中,可以通过将文件放在src / test / resources / jndi.properties来完成

log4j.rootLogger = fatal,C

log4j.category.OpenEJB = warn

log4j.category.OpenEJB.options = warn

log4j.category.OpenEJB.server = warn

log4j.category.OpenEJB.startup = warn

log4j.category.OpenEJB.startup.service = warn

log4j.category.OpenEJB.startup.config = warn

log4j.category.OpenEJB.hsql = warn

log4j.category.CORBA-Adapter = warn

log4j.category.Transaction = warn

log4j.category.org.apache.activemq = error

log4j.category.org.apache.geronimo = error

log4j.category.openjpa = warn

log4j.appender.C = org.apache.log4j.ConsoleAppender

log4j.appender.C.layout = org.apache.log4j.SimpleLayout

openejb.nobanner = false

请注意,查找和读取jndi.properties文件是java vm的功能,因此如果它不起作用,则更可能是配置问题而不是vm错误.

选项3:Maven Surefire配置

org.apache.maven.plugins

maven-surefire-plugin

2.5

fatal,C

warn

warn

warn

warn

warn

warn

warn

warn

warn

error

error

warn

org.apache.log4j.ConsoleAppender

org.apache.log4j.SimpleLayout

false

选项4:任何组合

另请注意,所有上述技术都可以一次使用,包括您希望在各个测试用例中添加的任何覆盖.优先顺序如下:

> InitialContext属性

>类路径中的jndi.properties

>系统属性(在这种情况下,通过surefire设置)

> classpath中的embedded.logging.properties

选项5:申请功能

一如既往,我们非常乐意以任何方式让事情变得更轻松.如果您有特定的需求或想法,我们很乐意尝试使用它,或者如果您想要贡献,可以帮助您实现它.

 类似资料: