为了账号安全,请及时绑定邮箱和手机立即绑定

自定义Serilog接收器无法通过AppSettings使用

自定义Serilog接收器无法通过AppSettings使用

C#
繁星点点滴滴 2021-05-06 18:31:20
我正在尝试为Serilog设置自定义接收器,无法使其工作..我正在使用Logger,例如:Log.Logger = new LoggerConfiguration().ReadFrom.AppSettings().CreateLogger();如果我这样做的话,它确实可以工作://Log.Logger = new LoggerConfiguration().WriteTo.LogSenderSink().CreateLogger();因此,只有在使用AppSettings时,它才能正确触发。我有两个类,一个用于接收器,一个用于扩展。水槽:using System;using Serilog.Core;using Serilog.Events;namespace Serilog.Sinks.LogSender{    public class LogSenderSink : ILogEventSink, IDisposable    {        private readonly IFormatProvider _formatProvider;        public LogSenderSink(IFormatProvider formatProvider, LogEventLevel restrictedToMinimumLevel)        {            _formatProvider = formatProvider;        }        public void Dispose()        {        }        public void Emit(LogEvent logEvent)        {            var message = logEvent.RenderMessage(_formatProvider);            Console.WriteLine(DateTimeOffset.Now.ToString() + " " + message);            try            {                System.IO.File.WriteAllText(@"C:\Logs\test.txt", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));            }            catch { }        }    }}和扩展方法:using Serilog.Configuration;using Serilog.Events;using Serilog.Sinks.LogSender;using System;namespace Serilog{    public static class LogSinkExtensions    {        public static LoggerConfiguration LogSenderSink(                this LoggerSinkConfiguration loggerConfiguration,                LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum,                  IFormatProvider formatProvider = null)        {            return loggerConfiguration.Sink(new LogSenderSink(formatProvider, restrictedToMinimumLevel));        }    }}我在其中测试的项目中的App.config如下所示:<?xml version="1.0" encoding="utf-8" ?><configuration>    <startup>         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />    </startup>  <appSettings>我在这里想念什么?我这样称呼日志:Log.Information("Debug was just sent");而且什么也没有发生...
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

您是否没有丢失serilog:write-to:LogSenderSink配置文件中的设置?


查看完整回答
反对 回复 2021-05-21
  • 1 回答
  • 0 关注
  • 297 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信