Kit.Core/LibCommon/Kit.Core.Helpers/Log/CallStackLogDB.cs

45 lines
1.4 KiB
C#

namespace Kit.Helpers.Log
{
public class CallStackLogDB: CallStackLog, IDisposable
{
protected string _sessionKey;
protected LogMessageType _type;
protected string _target;
protected string _action;
protected DateTime _dateCreated;
private bool disposed = false;
public CallStackLogDB(string sessionKey, LogMessageType type, string target, string action):base()
{
_sessionKey = sessionKey;
_type = type;
_target = target;
_action = action;
_dateCreated = DateTime.UtcNow;
}
public void Dispose()
{
Dispose(true);
// подавляем финализацию
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
this.Logs.TryAdd($"Full Time", Convert.ToInt64((DateTime.UtcNow - _dateCreated).TotalMilliseconds));
Kit.Helpers.Log.LoggerDB.Commit(this._sessionKey, this._type, this._target, this._action, _dateCreated, this.Logs.ToDictionary(x => x.Key, x => x.Value));
}
// освобождаем неуправляемые объекты
disposed = true;
}
}
}
}