Initial Commit ...
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user