Jas*_*n S 8 java logging log4j2
我的团队正在开发一个NetBeans插件,它使用日志记录到指定的文件.日志系统使用SLF4J + Log4J2; 我所知道的唯一配置信息是具有log4j2.xml该插件的日志记录属性的文件,以及以下内容:
LoggerContext loggerContext = (LoggerContext)LogManager.getContext(false);
loggerContext.reconfigure();
Run Code Online (Sandbox Code Playgroud)
(我使用SLF4J和NetBeans的事实在这里并不重要.)
我的问题是,当插件启动时开始记录的正确方法是什么,并在插件退出时停止记录?(JVM继续使用NetBeans,因此日志文件不会自动关闭.)
我抬起头LoggerContext,我看到stop()和terminate()方法,但我找不到应用程序应该如何使用任何文件LoggerContext,所以我不知道这是否LifeCycle东西是内部细节或一些应用程序应该使用.
一些更具体的细节:
我们的插件生命周期类似于下图(一次只允许一个实例运行)."A"和"B"指的是我们希望生效的日志配置.
[Something starts within the JVM to load log4j classes first.
It might be our plugin, it might be something else.
A log4j's default mechanism kicks in to create log configuration A]
|
| [time passes]
|
| [our plugin starts]
A [log4j classes first loaded,
| default mechanism kicks in to create log configuration A]
A setup log configuration B
A B log event 1
A B log event 2
A B log event 3
A shutdown log configuration B
| [our plugin exits]
|
| [time passes]
|
| [our plugin starts]
A setup log configuration B
A B log event 1
A B log event 2
A B log event 3
A shutdown log configuration B
| [our plugin exits]
|
| [time passes]
|
[JVM exits]
Run Code Online (Sandbox Code Playgroud)
配置A与JVM关联,并且是第一次由JVM加载时由log4j创建的默认配置.
配置B由插件以编程方式进行管理,并且应具有独立于配置A的显式启动/关闭(并且配置A不应受到影响).
有没有办法用log4j 2.0实现这个目标?
| 归档时间: |
|
| 查看次数: |
607 次 |
| 最近记录: |