using GreenTree.Nachtragsmanagement.Core;
using GreenTree.Nachtragsmanagement.Core.Domain.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GreenTree.Nachtragsmanagement.Services.Logging
{
public interface IBaseLogger
{
///
/// Determines whether a log level is enabled
///
/// Log level
bool IsEnabled(LogLevel level);
///
/// Deletes a log item
///
/// Log item
void DeleteLog(Log log);
///
/// Clears a log
///
void ClearLog();
///
/// Gets all log items
///
/// Log item collection
IList GetAllLogs();
///
/// Gets a log item
///
/// Log item identifier
/// Log item
Log GetLogById(int logId);
///
/// Get log items by identifiers
///
/// Log item identifiers
/// Log items
IList GetLogByIds(int[] logIds);
///
/// Inserts a log item
///
/// Log level
/// The short message
/// The full message
/// The user to associate log record with
/// A log item
Log InsertLog(LogLevel logLevel, string shortMessage, BaseEntity entity = null, string fullMessage = "",
Core.Domain.User.User user = null);
}
}