101 lines
2.7 KiB
C#
101 lines
2.7 KiB
C#
using System;
|
|
using Microsoft.Extensions.Logging;
|
|
using xCommons.Extensions;
|
|
using xExceptions.Constants;
|
|
|
|
namespace xModels.Base {
|
|
/// <summary>
|
|
/// a Base class which carry required things as a Father for it's childs ...
|
|
/// </summary>
|
|
public abstract class XBaseClass {
|
|
//
|
|
#region Properties ...
|
|
/// <summary>
|
|
/// LogTag which Specified for this class ...
|
|
/// </summary>
|
|
private readonly string LOG_TAG;
|
|
|
|
/// <summary>
|
|
/// logger instance ...
|
|
/// </summary>
|
|
private readonly ILogger logger;
|
|
#endregion
|
|
|
|
//
|
|
#region Constructor ...
|
|
public XBaseClass (ILoggerFactory loggerFactory) {
|
|
//
|
|
// Preparing Log Tag ...
|
|
LOG_TAG = this.GetType ().Name;
|
|
|
|
//
|
|
Type classType = this.GetType ();
|
|
logger = loggerFactory.CreateLogger (classType);
|
|
}
|
|
#endregion
|
|
|
|
//
|
|
#region Protected ...
|
|
/// <summary>
|
|
/// Extract Prepared Log MEssage ...
|
|
/// </summary>
|
|
/// <param name="message"></param>
|
|
/// <returns></returns>
|
|
protected virtual string GetLogMessage (string message) {
|
|
//
|
|
// Prepare Log Message ...
|
|
message = $"{LOG_TAG} => {message}";
|
|
return message;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Logging specific Message ...
|
|
/// </summary>
|
|
/// <param name="message"></param>
|
|
/// <param name="logLevel"></param>
|
|
protected virtual void LogMessage (
|
|
string message,
|
|
LogLevel logLevel = LogLevel.Information
|
|
) {
|
|
//
|
|
// Validate Args ...
|
|
if (message.IsNullOrEmpty ()) {
|
|
throw XException.InvalidArgs
|
|
.ToException ();
|
|
}
|
|
|
|
//
|
|
// Prepare Log Message ...
|
|
message = GetLogMessage (message);
|
|
|
|
//
|
|
// Logging Message ...
|
|
logger.Log (
|
|
message: message,
|
|
logLevel: logLevel
|
|
);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Logging specific Message to Console ...
|
|
/// </summary>
|
|
/// <param name="message"></param>
|
|
protected virtual void ConsoleMessage (string message) {
|
|
//
|
|
// Validate Args ...
|
|
if (message.IsNullOrEmpty ()) {
|
|
throw XException.InvalidArgs
|
|
.ToException ();
|
|
}
|
|
|
|
//
|
|
// Prepare Log Message ...
|
|
message = GetLogMessage (message);
|
|
|
|
//
|
|
// Logging Message ...
|
|
Console.WriteLine (message);
|
|
}
|
|
#endregion
|
|
}
|
|
} |