Пример #1
0
        public static void ConfigureLogger()
        {
            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Debug()
                         .Enrich.WithThreadId()
                         .Enrich.WithEnvironmentUserName()
                         .Enrich.WithExceptionDetails()
                         .Enrich.WithCaller()
#if DEBUG
                         .WriteTo.Console(LogEventLevel.Verbose, "[{Timestamp:HH:mm:ss.fff} {Level:u3}][{ThreadId}] {Message} (at {Caller}){NewLine}{Exception}", theme: Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme.Code)
#endif
                         .WriteTo.File(Path.Combine(ApplicationPath.Logs, "soundswitch.log"),
                                       rollingInterval: RollingInterval.Day, retainedFileCountLimit: 3,
                                       flushToDiskInterval: TimeSpan.FromMinutes(10),
                                       outputTemplate: "[{Timestamp:HH:mm:ss.fff} {Level:u3}][{ThreadId}] {Message} (at {Caller}){NewLine}{Exception}")
                         .WriteTo.Sentry(o =>
            {
                o.InitializeSdk          = false;
                o.MinimumBreadcrumbLevel = LogEventLevel.Debug;
                o.MinimumEventLevel      = LogEventLevel.Error;
            })
                         .CreateLogger();
            var listener = new global::SerilogTraceListener.SerilogTraceListener();
            Trace.Listeners.Add(listener);
        }
Пример #2
0
        public void SetUp()
        {
            var delegatingSink = new DelegatingSink(evt => { _loggedEvent = evt; });
            var logger         = new LoggerConfiguration().MinimumLevel.Verbose().WriteTo.Sink(delegatingSink).CreateLogger();

            _loggedEvent   = null;
            _traceListener = new global::SerilogTraceListener.SerilogTraceListener(logger);
        }
        public void SetUp()
        {
            var delegatingSink = new DelegatingSink(evt => { _loggedEvent = evt; });
            var logger = new LoggerConfiguration().MinimumLevel.Verbose().WriteTo.Sink(delegatingSink).CreateLogger();

            _loggedEvent = null;
            _traceListener = new global::SerilogTraceListener.SerilogTraceListener(logger);
        }
Пример #4
0
        public static void ConfigureLogger()
        {
            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Debug()
                         .Enrich.WithThreadId()
                         .Enrich.WithEnvironmentUserName()
                         .Enrich.WithExceptionDetails()
                         .Enrich.WithCaller()
                         .WriteTo.File(Path.Combine(ApplicationPath.Logs, "soundswitch.log"),
                                       rollingInterval: RollingInterval.Day, retainedFileCountLimit: 3,
                                       flushToDiskInterval: TimeSpan.FromMinutes(10),
                                       outputTemplate: "[{Timestamp:HH:mm:ss.fff} {Level:u3}] {Message} (at {Caller}){NewLine}{Exception}")
                         .CreateLogger();
            var listener = new global::SerilogTraceListener.SerilogTraceListener();

            Trace.Listeners.Add(listener);
        }
Пример #5
0
        //------------------------------------------------------------------------------------------------
        // construction
        //------------------------------------------------------------------------------------------------

        public DeribitJsonRpcService
        (
            IDeribitService deribit,
            IDeribitWebSocketService wsservice,
            DeribitConfig config
        )
        {
            // dependencies
            this.deribit       = deribit;
            this.deribitconfig = config;
            this.wsservice     = wsservice;
            // logger
            this.logger = Serilog.Log.ForContext <DeribitJsonRpcService>();
            // message formatter
            JsonMessageFormatter messageformatter = new JsonMessageFormatter()
            {
                Encoding        = Encoding.UTF8,
                ProtocolVersion = new Version(2, 0),
            };
            // attach json rpc to websocket
            WebSocketMessageHandler wsmh = new WebSocketMessageHandler(wsservice.ClientWebSocket);

            this.JsonRpc = new StreamJsonRpc.JsonRpc(wsmh);
            // build proxy // https://github.com/microsoft/vs-streamjsonrpc/blob/master/doc/dynamicproxy.md
            this.RpcProxy = this.JsonRpc.Attach <IDeribitJsonRpcProxy>(new JsonRpcProxyOptions
            {
                ServerRequiresNamedArguments = true,
            });
            // tracing
            if (config.EnableJsonRpcTracing)
            {
                var listener = new global::SerilogTraceListener.SerilogTraceListener();
                this.JsonRpc.TraceSource.Listeners.Add(listener);
                this.JsonRpc.TraceSource.Switch.Level = System.Diagnostics.SourceLevels.Information;
                this.logger.Verbose("JsonRpc tracing enabled");
            }
        }