Example #1
0
        public ILoggerBuilder TryCreateLogger()
        {
            try
            {
                var loggerConfiguration = new LoggerConfiguration()
                                          .ReadFrom.Configuration(_configuration)
                                          .WriteTo.Debug()
                                          .WriteTo.Console();

                if (_writeToFiles.Value())
                {
                    loggerConfiguration = loggerConfiguration.WriteTo.File(
                        "../logs/log.txt",
                        rollingInterval: RollingInterval.Day,
                        shared: true,
                        outputTemplate: _messageTemplate.Value());
                }

                _logger = loggerConfiguration.CreateLogger();
            }
            catch (Exception exception)
            {
                _exception = exception;
            }

            return(this);
        }
        public Logger Logger()
        {
            if (_elkLoggerBuilder.TryCreateLogger().Created())
            {
                return(_elkLoggerBuilder.Logger());
            }

            if (!_fileLoggerBuilder.TryCreateLogger().Created())
            {
                throw new InvalidOperationException(
                          "Cannot create file logger", _fileLoggerBuilder.ThrownException());
            }

            Logger logger = _fileLoggerBuilder.Logger();

            logger.Error(
                new InvalidOperationException(
                    "Logging to ELK is not available. Started to log in file",
                    _elkLoggerBuilder.ThrownException()),
                messageTemplate: _messageTemplate.Value());

            return(logger);
        }