搬运自OpenMod官网,经过翻译,可能有些不足,欢迎指正!原文链接
日志
OpenMod使用Microsoft.Extensions.Logging包用于记录摘要和Serilog作为它的日志实现。
有关更多信息,请参阅上ILogger接口文档docs.microsoft.com。
您可以通过注入logger实例来获取它:
public class MyPlugin : OpenModUniversalPlugin { private readonly ILogger<MyPlugin> m_Logger; public MyPlugin(ILogger<MyPlugin> logger, IServiceProvider serviceProvider) : base(serviceProvider) { m_Logger = logger; m_Logger.LogInformation("Hello world!"); } }
通用部分(ILogger<T>中的T)必须是使用记录器的类。
实现自己的记录器
要实现自己的记录器,必须实现ILoggerFactory和ILogger<>服务。
之后,必须通过ServiceConfigurator注册它们:
public class ServiceConfigurator : IServiceConfigurator { public void ConfigureServices(IOpenModStartupContext openModStartupContext, IServiceCollection serviceCollection) { serviceCollection.AddSingleton<ILoggerFactory, MyLoggerFactory>(); serviceCollection.AddTransient(typeof(ILogger<>), typeof(MyLogger<>)(); // 必须是临时的 } }
自定义记录器在OpenMod构建IoC容器之后使用。之前的启动消息不会显示在自定义记录器上。