以编程方式配置 Jetty Logger,使用具有构造函数依赖项的 Logger
Programmatically configure Jetty Logger, using a Logger with constructor dependencies
与 Programmatically configure Jetty's logger 类似,我将 Jetty 用作独立应用程序,并希望使用代码而不是配置文件来配置记录器。
我知道我可以通过设置 属性 来提供自定义日志 class,例如:System.setProperty("org.eclipse.jetty.util.log.class", "com.example.JettyLog");
但是,我想使用的日志 class 需要一个构造函数依赖项(日志文件名),如果有一种方法可以为 Jetty 提供一个已经构建好的实现,它会简单得多。例如:
org.eclipse.jetty.util.log.Logger logger = new MyCustomLogger( logFile );
// and then somehow provide the logger instance to Jetty
有谁知道这是否可行以及如何实现?
org.mortbay.log.Logger
是旧的 Jetty 6(或更早版本)class。
Jetty 6 上的日志基础结构无法执行您想要执行的操作。
备注:
- Jetty 6 早在 2010 年就停产了。
- Jetty 7 和 Jetty 8 在 2014 年停产。
- 只有 Jetty 9 是最新的、稳定的,并且推荐在开放的互联网上用于生产。
如果你想为 Jetty 制作自定义记录器,那么在 Jetty 9 上是可能的。但即使在那里,通常更容易挂接到 Slf4jLog
层并创建各种日志记录基础设施。
另请参阅 Jetty 9 Logging Documentation 了解更多示例。
如何在代码中执行此操作。
MyCustomLogger
需要实施 [org.eclipse.jetty.util.log.Logger
]
- 初始化您的
MyCustomerLogger
并配置它
- 使用
org.eclipse.jetty.util.log.Log.setLog(new MyCustomLogger( logFile ));
将其设置为 Logger 实现
注意:请注意,日志记录在 JVM 中初始化得非常早。您的初始化也应尽早进行,否则您将无法正确替换 Logger 实现。
日志记录的这种早期初始化在日志记录基础设施中很常见,这就是为什么所有(我的意思是所有)日志记录库都具有在拉技术中配置的首次加载初始化(而不是在推送技术中)想用)。每个日志库都会从日志配置和基础设施本身获取配置(通过 xml、属性文件、json、INI、系统属性等),包括文件名之类的东西。
与 Programmatically configure Jetty's logger 类似,我将 Jetty 用作独立应用程序,并希望使用代码而不是配置文件来配置记录器。
我知道我可以通过设置 属性 来提供自定义日志 class,例如:System.setProperty("org.eclipse.jetty.util.log.class", "com.example.JettyLog");
但是,我想使用的日志 class 需要一个构造函数依赖项(日志文件名),如果有一种方法可以为 Jetty 提供一个已经构建好的实现,它会简单得多。例如:
org.eclipse.jetty.util.log.Logger logger = new MyCustomLogger( logFile );
// and then somehow provide the logger instance to Jetty
有谁知道这是否可行以及如何实现?
org.mortbay.log.Logger
是旧的 Jetty 6(或更早版本)class。
Jetty 6 上的日志基础结构无法执行您想要执行的操作。
备注:
- Jetty 6 早在 2010 年就停产了。
- Jetty 7 和 Jetty 8 在 2014 年停产。
- 只有 Jetty 9 是最新的、稳定的,并且推荐在开放的互联网上用于生产。
如果你想为 Jetty 制作自定义记录器,那么在 Jetty 9 上是可能的。但即使在那里,通常更容易挂接到 Slf4jLog
层并创建各种日志记录基础设施。
另请参阅 Jetty 9 Logging Documentation 了解更多示例。
如何在代码中执行此操作。
MyCustomLogger
需要实施 [org.eclipse.jetty.util.log.Logger
]- 初始化您的
MyCustomerLogger
并配置它 - 使用
org.eclipse.jetty.util.log.Log.setLog(new MyCustomLogger( logFile ));
将其设置为 Logger 实现
注意:请注意,日志记录在 JVM 中初始化得非常早。您的初始化也应尽早进行,否则您将无法正确替换 Logger 实现。
日志记录的这种早期初始化在日志记录基础设施中很常见,这就是为什么所有(我的意思是所有)日志记录库都具有在拉技术中配置的首次加载初始化(而不是在推送技术中)想用)。每个日志库都会从日志配置和基础设施本身获取配置(通过 xml、属性文件、json、INI、系统属性等),包括文件名之类的东西。