/// <summary> /// Writting a log message in file. /// </summary> /// <param name="logType"></param> /// <param name="message"></param> /// <param name="methodBase"></param> /// <param name="exception"></param> public void WriteLog(CommonEnum.LogLevelEnum logType, MethodBase methodBase, string referenceNo = null, string message = null, Exception exception = null) { string refNo = !string.IsNullOrWhiteSpace(referenceNo) ? referenceNo : Guid.NewGuid().ToString(); StringBuilder logMessage = new StringBuilder(); logMessage.AppendLine($"Method: {methodBase.DeclaringType.FullName}.{methodBase.Name}"); logMessage.AppendLine($"Issued Date: {DateTime.Now}"); logMessage.AppendLine($"Reference No.: {refNo}"); if (!string.IsNullOrWhiteSpace(message)) { logMessage.AppendLine($"Message: {message}"); } Array logLevelEnums = System.Enum.GetValues(typeof(CommonEnum.LogLevelEnum)); CommonEnum.LogLevelEnum availableLogTypes = (CommonEnum.LogLevelEnum)_seriLogSettings.LogLevel; foreach (CommonEnum.LogLevelEnum item in logLevelEnums) { if ((availableLogTypes & item) == logType && System.Enum.TryParse(logType.ToString(), out Serilog.Events.LogEventLevel logLevel)) { Log.Logger.Write(logLevel, exception, logMessage.ToString()); } } }
/// <summary> /// Writting a log message in file async. /// </summary> /// <param name="logType"></param> /// <param name="message"></param> /// <param name="methodBase"></param> /// <param name="exception"></param> public async Task WriteLogAsync(CommonEnum.LogLevelEnum logType, MethodBase methodBase, string referenceNo = null, string message = null, Exception exception = null) { await Task.Run(() => WriteLog(logType, methodBase, referenceNo, message, exception)); }