• 注册
  • 技术交流 技术交流 关注:8 内容:20

    [OpenMod]插件的日志

  • 查看作者
  • 打赏作者
  • 当前位置: 未转变者中文社区 > 技术交流 > 正文
    大版主
    Lv.15

    搬运自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)必须是使用记录器的类。

    实现自己的记录器

    要实现自己的记录器,必须实现ILoggerFactoryILogger<>服务。

    之后,必须通过ServiceConfigurator注册它们:

    public class ServiceConfigurator : IServiceConfigurator
    {
        public void ConfigureServices(IOpenModStartupContext openModStartupContext, IServiceCollection serviceCollection)
        {
            serviceCollection.AddSingleton<ILoggerFactory, MyLoggerFactory>();
            serviceCollection.AddTransient(typeof(ILogger<>), typeof(MyLogger<>)(); // 必须是临时的
        }
    }

    自定义记录器在OpenMod构建IoC容器之后使用。之前的启动消息不会显示在自定义记录器上。

    请登录之后再进行评论

    登录
  • 发布内容
  • 任务中心
  • 实时动态
  • 偏好设置
  • 帖子间隔 侧栏位置: