private void Log(DiscordLogLevel level, string message, object data = null) { if (!IsLogging(level)) { return; } string log = $"[Discord Extension] [{level.ToString()}]: {message}"; switch (level) { case DiscordLogLevel.Debug: case DiscordLogLevel.Warning: Interface.Oxide.LogWarning(log); break; case DiscordLogLevel.Error: Interface.Oxide.LogError(log); break; case DiscordLogLevel.Exception: Interface.Oxide.LogException($"{log}\n{data}", (Exception)data); break; default: Interface.Oxide.LogInfo(log); break; } }
/// <summary> /// Remove a client from the bot client /// If not clients are left bot will shutdown /// </summary> /// <param name="client">Client to remove from bot client</param> public void RemoveClient(DiscordClient client) { _clients.Remove(client); Logger.Debug($"{nameof(BotClient)}.{nameof(RemoveClient)} Client Removed"); if (_clients.Count == 0) { ShutdownBot(); Logger.Debug($"{nameof(BotClient)}.{nameof(RemoveClient)} Bot count 0 shutting down bot"); return; } DiscordLogLevel level = DiscordLogLevel.Off; for (int index = 0; index < _clients.Count; index++) { DiscordClient remainingClient = _clients[index]; if (remainingClient.Settings.LogLevel < level) { level = remainingClient.Settings.LogLevel; } } if (level > Settings.LogLevel) { UpdateLogLevel(level); } // For now let's not do the removing of intents. It shouldn't be an issue to keep them. // GatewayIntents intents = GatewayIntents.None; // foreach (DiscordClient exitingClients in _clients) // { // intents |= exitingClients.Settings.Intents; // } // // //Our intents have changed. Disconnect websocket and reconnect with new intents. // if (intents != Settings.Intents) // { // Settings.Intents = intents; // DisconnectWebsocket(true); // } }
private void UpdateLogLevel(DiscordLogLevel level) { Logger.UpdateLogLevel(level); Logger.Debug($"{nameof(BotClient)}.{nameof(UpdateLogLevel)} Updating log level from: {Settings.LogLevel.ToString()} to: {level.ToString()}"); Settings.LogLevel = level; }
public DiscordLogger(DiscordLogLevel level) { this.level = level; }
/// <summary> /// Creates a new logger with the given log level /// </summary> /// <param name="logLevel">Log level of the logger</param> public Logger(DiscordLogLevel logLevel) { _logLevel = logLevel; }
/// <summary> /// Returns true if the logger is logging for the passed log level /// </summary> /// <param name="level">Log Level to check</param> /// <returns>True if the logger is logging for the given log level</returns> public bool IsLogging(DiscordLogLevel level) { return(level >= _logLevel); }
/// <summary> /// Updates the log level for the current logger /// </summary> /// <param name="level">Level to update the logger to</param> public void UpdateLogLevel(DiscordLogLevel level) { _logLevel = level; }