示例#1
0
        public void LogContextProperties()
        {
            var connectionString = "";
            var queueName        = "";

            var settings = new NodiniteLogEventSettings()
            {
                LogAgentValueId       = 503,
                EndPointDirection     = 0,
                EndPointTypeId        = 0,
                EndPointUri           = "Nodinite.Serilog.ServiceBusSink.Tests.Serilog",
                EndPointName          = "Nodinite.Serilog.ServiceBusSink.Tests",
                ProcessingUser        = "******",
                ProcessName           = "Nodinite.Serilog.ServiceBusSink.Tests",
                ProcessingMachineName = "NODINITE-DEV",
                ProcessingModuleName  = "DOTNETCORE.TESTS",
                ProcessingModuleType  = "DOTNETCORE.TESTPROJECT"
            };

            ILogger log = new LoggerConfiguration()
                          .WriteTo.NodiniteServiceBusSink(connectionString, queueName, settings)
                          .CreateLogger()
                          .ForContext("ApplicationInterchangeId", $"CustomId-{Guid.NewGuid().ToString()}")
                          .ForContext("CustomerId", 12)
                          .ForContext("Body", JsonConvert.SerializeObject(new { Id = 1 }))
                          .ForContext("OriginalMessageType", "TestMessage#1.0");

            log.Information($"Customer '12' imported");
        }
示例#2
0
        public NodiniteServiceBusSink(string connectionString, string queueName, NodiniteLogEventSettings settings, IFormatProvider formatProvider)
        {
            _connectionString   = connectionString;
            _queueName          = queueName;
            _settings           = settings;
            _formatProvider     = formatProvider;
            _localInterchangeId = Guid.NewGuid();

            // validate settings
            if (!_settings.LogAgentValueId.HasValue)
            {
                throw new ArgumentNullException("LogAgentValueId must not be null");
            }
        }
示例#3
0
        public static LoggerConfiguration NodiniteServiceBusSink(
            this LoggerSinkConfiguration loggerConfiguration,
            string ConnectionString,
            string QueueName,
            NodiniteLogEventSettings Settings,
            IFormatProvider formatProvider         = null,
            LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum)
        {
            if (loggerConfiguration == null)
            {
                throw new ArgumentNullException("loggerConfiguration");
            }

            return(loggerConfiguration.Sink(new NodiniteServiceBusSink(ConnectionString, QueueName, Settings, formatProvider), restrictedToMinimumLevel));
        }
示例#4
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            Microsoft.Extensions.Logging.ILogger log)
        {
            var nodiniteApiUrl = "https://{yourNodiniteInstance}/LogApi/api/";
            var settings       = new NodiniteLogEventSettings()
            {
                LogAgentValueId         = 503,
                EndPointDirection       = 0,
                EndPointTypeId          = 0,
                EndPointUri             = "Nodinite.Serilog.ApiSink.AzureFunction.Serilog",
                EndPointName            = "Nodinite.Serilog.ApiSink.AzureFunction",
                OriginalMessageTypeName = "Serilog.LogEvent",
                ProcessingUser          = "******",
                ProcessName             = "Azure.FunctionApp.MyFunctionProj.MyHttpTrigger",
                ProcessingMachineName   = "Azure",
                ProcessingModuleName    = "Azure.FunctionApp.MyFunctionProj",
                ProcessingModuleType    = "Azure.FunctionApp"
            };

            string orderId       = req.Query["orderId"];
            string correlationId = req.Query["correlationId"];

            Serilog.ILogger nodiniteLogger = new LoggerConfiguration()
                                             .WriteTo.NodiniteApiSink(nodiniteApiUrl, settings)
                                             .CreateLogger()
                                             .ForContext("CorrelationdId", correlationId)
                                             .ForContext("OrderId", orderId);

            string msg = $"Order #{orderId} processed.";

            nodiniteLogger.Information(msg);
            log.LogInformation(msg);

            string  requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data        = JsonConvert.DeserializeObject(requestBody);

            return((ActionResult) new OkObjectResult(msg));
        }
示例#5
0
        public void InitiateLogger_MissingLogAgentValue()
        {
            var connectionString = "";
            var queueName        = "";

            var settings = new NodiniteLogEventSettings()
            {
                EndPointDirection       = 0,
                EndPointTypeId          = 0,
                EndPointUri             = "Nodinite.Serilog.Sink.Tests.Serilog",
                EndPointName            = "Nodinite.Serilog.Sink.Tests",
                OriginalMessageTypeName = "Serilog.LogEvent",
                ProcessingUser          = "******",
                ProcessName             = "Nodinite.Serilog.Sink.Tests",
                ProcessingMachineName   = "NODINITE-DEV",
                ProcessingModuleName    = "DOTNETCORE.TESTS",
                ProcessingModuleType    = "DOTNETCORE.TESTPROJECT"
            };

            Logger log = new LoggerConfiguration()
                         .WriteTo.NodiniteServiceBusSink(connectionString, queueName, settings)
                         .CreateLogger();
        }