Exemplo n.º 1
0
        public void SetAuthCredentials(LokiCredentials credentials)
        {
            if (string.IsNullOrEmpty(credentials.Username) || string.IsNullOrEmpty(credentials.Password))
            {
                return;
            }

            var headers = HttpClient.DefaultRequestHeaders;

            if (headers.Any(x => x.Key == "Authorization"))
            {
                return;
            }

            var token = Base64Encode($"{credentials.Username}:{credentials.Password}");

            headers.Add("Authorization", $"Basic {token}");
        }
        private static LoggerConfiguration LokiHttpImpl(this LoggerSinkConfiguration sinkConfiguration, LokiCredentials credentials, IEnumerable <LokiLabel> logLabels, IHttpClient httpClient)
        {
            var formatter = logLabels != null ? new LokiBatchFormatter(logLabels) : new LokiBatchFormatter();

            var client = httpClient ?? new LokiHttpClient();

            if (client is LokiHttpClient lokiHttpClient)
            {
                lokiHttpClient.SetAuthCredentials(credentials);
            }

            return(sinkConfiguration.Http(LokiRouteBuilder.BuildPostUri(credentials.Url), batchFormatter: formatter, httpClient: client));
        }
 public static LoggerConfiguration LokiHttp(this LoggerSinkConfiguration sinkConfiguration, LokiCredentials credentials, IEnumerable <LokiLabel> logLabels = null, LokiHttpClient httpClient = null)
 => LokiHttpImpl(sinkConfiguration, credentials, logLabels, httpClient);