我有一个用于记录目的的拦截器。现在我想给管理员启用/禁用日志记录的选项。我可以使用应用程序服务器参数,但我不知道如何在运行时访问它们。将为该布尔值或生成器创建一个bean,并将其注入我的拦截器。
目前我正在使用JBoss,但我可能会更改为Glassfish。有没有办法覆盖他们每个人?
答案 0 :(得分:1)
嗯,启用/禁用日志记录通常是您通过日志记录配置(设置日志级别)执行的操作。
虽然你也可以使用JMX并在MBeanServer中注册你的Beans来从JBoss外部调用你喜欢的任何方法(即通过JConsole或任何其他JMX客户端)。但请注意,每个Bean 实例都必须注册,所以说EJB可能有多个。我曾经通过为每个SessionBean使用一个Singleton EJB作为MBean服务/保存参数和来自每个实例的信息来解决这个问题。
答案 1 :(得分:1)
您还可以使用系统属性。您可以通过jboss-cli设置它们,并使用System.getProperty(...)在代码中查询它们。 对于日志记录的特殊情况,每个应用程序服务器都为您的应用程序提供可管理的日志系统。例如,如果应用程序使用slf4j,则可以在运行时使用日志记录子系统中的jboss-cli配置日志级别。