我有一个关于Logback的问题。
简短版本
如果创建一个appender失败(例如权限被拒绝),当权限问题解决后,我如何显式重新尝试创建它。 我正在使用XML配置。 我希望这样做而不重新启动进程。
较长版本
我在Android上使用Logback (logback-android)。
我将日志记录到外部存储器上的目录中,这意味着如果用户连接设备并启用了大容量存储,则该目录的文件系统将被卸载。
如果目录不可用时启动应用程序,我会通知用户,但由于记录器被定义为静态字段...
private static final Logger LOG = LoggerFactory.getLogger(MyApplication.class);
Logback试图在类被类加载器加载时创建appender,如果失败,则无法创建。由于Android的工作方式,即使用户离开应用程序的所有屏幕(例如回到主屏幕),应用程序进程仍然继续运行,因此不会重新尝试创建appender。是否有办法从配置中重置appender?如果可以,在用户进入我的应用程序的初始屏幕时,我可以尝试重置Logback(如果需要)。我试图使用...来停止它。
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
if (loggerContext != null)
loggerContext.stop();
...这似乎很正常,但我似乎无法重新启动它:
loggerContext.start()
这似乎无法重新创建 appender。
非常感谢您的帮助。