/// <summary>
        /// LogClientMessage (should only be called from admin log controller)
        /// </summary>
        /// <param name="logEntry">message</param>
        /// <param name="sessionId">id of session (optional)</param>
        /// <param name="userName">user name (optional)</param>
        /// <example>
        /// var servicelog = new ServiceLogRepository();
        /// await servicelog.LogClientMessage("FileStore API", "Hello World");
        /// </example>
        public async Task <HttpResponseMessage> LogClientMessage(
            ClientLogModel logEntry,
            string sessionId,
            string userName)
        {
            // create the log entry
            StandardLogModel serviceLog = new StandardLogModel
            {
                Source     = logEntry.Source,
                LogLevel   = (LogLevelEnum)logEntry.LogLevel,
                Message    = logEntry.Message,
                OccurredAt = DateTime.Now,
                SessionId  = sessionId,
                UserName   = userName,
                MethodName = "",
                FilePath   = "",
                LineNumber = 0,
                StackTrace = logEntry.StackTrace
            };

            await LogStandardLog(serviceLog);

            // don't care about errors
            return(new HttpResponseMessage(HttpStatusCode.OK));
        }
        public void StandardLog_Critical_ReturnsOk()
        {
            // Arrange
            var controller = new LogController();
            var logEntry   = new StandardLogModel
            {
                LogLevel   = LogLevelEnum.Critical,
                Source     = "Controller source",
                Message    = "Hello",
                OccurredAt = DateTime.Now
            };

            // Act
            var result = controller.Log(logEntry);

            // Assert
            Assert.IsInstanceOfType(result, typeof(OkResult));
        }
Exemple #3
0
        public async Task LogStandardLog_Success()
        {
            // Arrange
            var httpClientProvider = new TestHttpClientProvider(request => new HttpResponseMessage(HttpStatusCode.OK));
            var localLog           = new Mock <ILocalLog>().Object;
            var servicelog         = new ServiceLogRepository(httpClientProvider, localLog);
            var logEntry           = new StandardLogModel()
            {
                Source   = "ServiceLogRepositoryTests",
                LogLevel = LogLevelEnum.Informational,
                Message  = "Hello World",
                UserName = "******"
            };

            // Act
            await servicelog.LogStandardLog(logEntry);

            // Assert
            // Doesn't return anything
        }
        public async Task LogStandardLog(StandardLogModel logEntry)
        {
            try
            {
                var uri = _configControlUri;
                if (string.IsNullOrWhiteSpace(uri))
                {
                    throw new ApplicationException("Application setting not set: ConfigControl");
                }
                var http = _httpClientProvider.Create(new Uri(uri));

                // Convert Object to JSON
                var requestMessage = JsonConvert.SerializeObject(logEntry);
                var content        = new StringContent(requestMessage, Encoding.UTF8, "application/json");

                HttpResponseMessage response = await http.PostAsync(@"log/standardlog", content);

                response.EnsureSuccessStatusCode();
            }
            catch (Exception ex)
            {
                _localLog.LogErrorFormat("Problem with ConfigControl Log service: {0}", ex.Message);
            }
        }
Exemple #5
0
        public IHttpActionResult Log([FromBody] StandardLogModel logEntry)
        {
            string ipAdress = GetIpAddress();

            switch (logEntry.LogLevel)
            {
            case LogLevelEnum.Error:
                StandardLogEventSource.Log.Error(
                    ipAdress,
                    logEntry.Source,
                    logEntry.Message,
                    logEntry.StackTrace,
                    logEntry.OccurredAt,
                    logEntry.SessionId,
                    logEntry.UserName);
                break;

            case LogLevelEnum.Warning:
                StandardLogEventSource.Log.Warning(
                    ipAdress,
                    logEntry.Source,
                    logEntry.Message,
                    logEntry.OccurredAt,
                    logEntry.SessionId,
                    logEntry.UserName);
                break;

            case LogLevelEnum.Informational:
                StandardLogEventSource.Log.Informational(
                    ipAdress,
                    logEntry.Source,
                    logEntry.Message,
                    logEntry.OccurredAt,
                    logEntry.SessionId,
                    logEntry.UserName);
                break;

            case LogLevelEnum.Verbose:
                StandardLogEventSource.Log.Verbose(
                    ipAdress,
                    logEntry.Source,
                    logEntry.Message,
                    logEntry.OccurredAt,
                    logEntry.SessionId,
                    logEntry.UserName);
                break;

            case LogLevelEnum.Critical:
                StandardLogEventSource.Log.Critical(
                    ipAdress,
                    logEntry.Source,
                    logEntry.Message,
                    logEntry.StackTrace,
                    logEntry.OccurredAt,
                    logEntry.SessionId,
                    logEntry.UserName);
                break;

            default:
                break;
            }

            return(Ok());
        }