Java 是否可以让处理程序识别它已被删除?
我正在编写一个自定义日志配置类,该类设置一个特定的处理程序并将其与根记录器关联,并计划在多个应用程序中使用它。我担心实际的程序代码将删除该处理程序并安装另一个处理程序 是否有一种方法可以让处理程序检测到它已从特定记录器中删除,或者让记录器报告关联已更改Java 是否可以让处理程序识别它已被删除?,java,java.util.logging,Java,Java.util.logging,我正在编写一个自定义日志配置类,该类设置一个特定的处理程序并将其与根记录器关联,并计划在多个应用程序中使用它。我担心实际的程序代码将删除该处理程序并安装另一个处理程序 是否有一种方法可以让处理程序检测到它已从特定记录器中删除,或者让记录器报告关联已更改 我唯一的另一种选择是使用一个线程,该线程将定期轮询根记录器处理程序并重新连接此处理程序,这非常难看您可以创建一个自定义的记录器,该记录器将覆盖您需要的任何特殊处理,并记录到该线程而不是根记录器 是否有一种方法可以让处理程序检测到它已从特定记录器中
我唯一的另一种选择是使用一个线程,该线程将定期轮询根记录器处理程序并重新连接此处理程序,这非常难看您可以创建一个自定义的
记录器
,该记录器将覆盖您需要的任何特殊处理,并记录到该线程而不是根记录器
是否有一种方法可以让处理程序检测到它已从特定记录器中删除,或者让记录器报告关联已更改
为了生成Logger的子类,您必须创建一个自定义LogManager。在某些环境中,需要特定的日志管理器,因此可能无法正常工作
然而,有一些骇客的事情,你可以尝试
准备好面对极其丑陋的局面。这个回答让我不寒而栗。@IngoBürk添加了警告,以显示出黑客们的高超技艺。要记住的是,老年退休金问题没有干净的解决办法。把这个答案想象成是在java.util.logging中如何制作香肠的。从积极的方面来说,这些建议让我非常害怕,以至于我的方法似乎是合理的:)@Uri完全同意。这足以让您成为java.util.logging素食主义者。不幸的是,我无法控制记录器-只能控制可以创建的处理程序和日志配置文件:(