示例#1
0
        public static LoggerConfiguration Netty(
            this LoggerSinkConfiguration sinkConfiguration,
            SerilogNettyClientOptions options,
            ISerializer serializer,
            LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum,
            LoggingLevelSwitch levelSwitch         = null)
        {
            if (sinkConfiguration == null)
            {
                throw new ArgumentNullException(nameof(sinkConfiguration));
            }

            Environment.SetEnvironmentVariable("io.netty.allocator.numDirectArenas", "0"); // 不记录一发送字节流

            if (string.IsNullOrWhiteSpace(options.Remote))
            {
                SelfLog.WriteLine("Remote can not be null");
            }

            if (options.RemoteEndPoint == null)
            {
                return(sinkConfiguration.Sink(new NullSink(), LevelAlias.Maximum, null));
            }

            try
            {
                var sink = new UdpSink(options, serializer);
                return(sinkConfiguration.Sink(sink, restrictedToMinimumLevel, levelSwitch));
            }
            catch (Exception e)
            {
                SelfLog.WriteLine("Unable to create UDP sink: {0}", e);
                return(sinkConfiguration.Sink(new NullSink(), LevelAlias.Maximum, null));
            }
        }
示例#2
0
 public static LoggerConfiguration Netty(
     this LoggerSinkConfiguration sinkConfiguration,
     SerilogNettyClientOptions options)
 {
     return(Netty(sinkConfiguration, options, new ProtobufSerializer()));
 }