Java 在logger.properties文件中设置自定义用户定义的格式化程序

Java 在logger.properties文件中设置自定义用户定义的格式化程序,java,logging,formatter,properties-file,Java,Logging,Formatter,Properties File,我被要求格式化记录器消息,以便它们显示在一行上。问题是,记录器有编程定义的处理程序,我无法更改其中任何一个。即使logger类在logp方法中定义了语法,是否可以重写.properties文件中日志消息的格式?我为不能提供代码而道歉。我尝试创建一个自定义格式化程序,并在logger.properties文件中指向它,但更改不可见 谢谢, 丹尼尔 我被要求格式化记录器消息,以便它们显示在一行上 如果他们都在使用,请阅读API文档中的,并按照SimpleFormat类级别文档中的说明,通过syste

我被要求格式化记录器消息,以便它们显示在一行上。问题是,记录器有编程定义的处理程序,我无法更改其中任何一个。即使logger类在logp方法中定义了语法,是否可以重写.properties文件中日志消息的格式?我为不能提供代码而道歉。我尝试创建一个自定义格式化程序,并在logger.properties文件中指向它,但更改不可见

谢谢, 丹尼尔

我被要求格式化记录器消息,以便它们显示在一行上

如果他们都在使用,请阅读API文档中的,并按照SimpleFormat类级别文档中的说明,通过system properties或logging.properties对其进行配置

即使logger类在logp方法中定义了语法,是否可以重写.properties文件中日志消息的格式

记录器正在执行的唯一格式化是参数化消息格式参数的顺序。如果要更改格式,应使用和参数化日志记录。然后,您可以通过提供不同的(每个构建)来交换不同的格式,从而允许您更改每种类型的消息键的格式。但是,这只是格式化LogRecord消息和参数。其余部分由格式化程序控制

我尝试创建一个自定义格式化程序,并在logger.properties文件中指向它,但更改不可见


logging.properties在设置程序定义的处理程序之前执行。在代码运行之后调用或。请记住,这将撤消正在设置的程序定义的处理程序。但是,这可能对您没有帮助,因为如果您能够编写代码来触发重新配置,您可以只编写代码来在编程定义的处理程序上安装格式化程序。

您的意思是调用GetRegisteredHandler,然后将我的自定义格式化程序添加到每个处理程序中吗?对于Logger.getLogger(“some.Logger.name”)中的每个处理程序.getHandlers()。setFormatter(新的CustomFormatter())。