• 中文
  • 注册
  • 技术交流 技术交流 关注:3 内容:13

    OpenMod插件的日志

  • 查看作者
  • 打赏作者
  • 当前位置: 未转变者中文社区 > 技术交流 > 正文
    • 技术交流
    • 搬运自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容器之后使用。之前的启动消息不会显示在自定义记录器上。

      请登录之后再进行评论

      登录
      极客之爱
      个人签名:收容失效服务器群组QQ群:1037114248
      关注2 粉丝1 喜欢2内容14
      上海
    • 做任务
    • 实时动态
    • 签到中心
      小黑屋
    • 到底部