// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
using System;
namespace FlaxEngine
{
///
/// Info message delegate.
///
/// The log level.
/// The message.
/// The object.
/// The stack trace.
[HideInEditor]
public delegate void LogDelegate(LogType level, string msg, Object obj, string stackTrace);
///
/// Info exception delegate.
///
/// The exception.
/// The object.
[HideInEditor]
public delegate void LogExceptionDelegate(Exception exception, Object obj);
///
/// Logger interface.
///
public interface ILogger
{
///
/// To selective enable debug log message.
///
LogType FilterLogType { get; set; }
///
/// To runtime toggle debug logging [ON/OFF].
///
bool LogEnabled { get; set; }
///
/// Set Logger.ILogHandler.
///
ILogHandler LogHandler { get; set; }
///
/// Check logging is enabled based on the LogType.
///
///
///
/// Return true in case logs of LogType will be logged otherwise returns false.
///
bool IsLogTypeAllowed(LogType logType);
///
/// Logs message to the Flax Console using default logger.
///
///
///
void Log(LogType logType, object message);
///
/// Logs message to the Flax Console using default logger.
///
///
///
///
void Log(LogType logType, object message, Object context);
///
/// Logs message to the Flax Console using default logger.
///
///
///
///
void Log(LogType logType, string tag, object message);
///
/// Logs message to the Flax Console using default logger.
///
///
///
///
///
void Log(LogType logType, string tag, object message, Object context);
///
/// Logs message to the Flax Console using default logger.
///
///
void Log(object message);
///
/// Logs message to the Flax Console using default logger.
///
///
///
void Log(string tag, object message);
///
/// Logs message to the Flax Console using default logger.
///
///
///
///
void Log(string tag, object message, Object context);
///
/// A variant of ILogger.Info that logs an error message.
///
///
///
void LogError(string tag, object message);
///
/// A variant of ILogger.Info that logs an error message.
///
///
///
///
void LogError(string tag, object message, Object context);
///
/// A variant of ILogger.Info that logs an exception message.
///
///
void LogException(Exception exception);
///
/// Logs a formatted message.
///
///
///
///
void LogFormat(LogType logType, string format, params object[] args);
///
/// A variant of Logger.Info that logs an warning message.
///
///
///
void LogWarning(string tag, object message);
///
/// A variant of Logger.Info that logs an warning message.
///
///
///
///
void LogWarning(string tag, object message, Object context);
///
/// A variant of ILogHandler.LogFormat that logs an exception message.
///
/// Runtime Exception.
/// Object to which the message applies.
void LogException(Exception exception, Object context);
///
/// Logs a formatted message.
///
/// The type of the log message.
/// Object to which the message applies.
/// Message to log.
void Log(LogType logType, Object context, string message);
}
}