示例#1
0
        public async Task <int> RecordLogMessageAsync(
            string message,
            string auxData,
            string source,
            int category,
            LogEntrySeverities severity
            )
        {
            // Retrieve requested user action
            var logSeverity =
                await _context
                .LogEntrySeverities
                .FirstAsync(act => act.Id == severity.AsInt());

            var entry = new LogEntry
            {
                Severity      = logSeverity,
                Message       = message,
                AuxiliaryData = auxData,
                Source        = source,
                Category      = category
            };

            // Record data
            await _context.LogEntries.AddAsync(entry);

            // Submit changes to data provider
            await _context.SaveChangesAsync();

            // Return Id of a created object in the data provider.
            return(entry.Id);
        }
示例#2
0
        /// <summary>
        /// Makes N POST requests to log a message.
        /// Part of the massage contains a current timestamp, so every log entry is unique.
        /// </summary>
        /// <param name="n">number of times to make a request</param>
        /// <param name="source">Source of the log message</param>
        /// <param name="category">Category of the log message</param>
        /// <returns>Response of the last request</returns>
        private async Task <HttpResponseMessage> MakeNLogMessageRequests(
            int n,
            string source = "the-source",
            int category  = 1,
            LogEntrySeverities severity = LogEntrySeverities.Warn
            )
        {
            var _url = "/api/logmessage";

            var parameters = new Dictionary <string, string> {
                { "severity", severity.ToString() },
                { "source", source },
                { "category", category.ToString() }
            };

            lock (_logLocker)
            {
                if (!_client.DefaultRequestHeaders.Contains("apikey"))
                {
                    _client.DefaultRequestHeaders.Add("apikey", _apiKey);
                }
            }

            HttpResponseMessage response = null;

            for (int i = 0; i < n; i++)
            {
                parameters["message"] = $"Hello, world {DateTime.UtcNow}";

                response = await _client.PostAsync(_url, new FormUrlEncodedContent(parameters));
            }

            return(response);
        }