コード例 #1
0
        private static void DebugLoggerOnMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            switch (e.Level)
            {
            case LogLevel.Debug:
                if (e.Application != "Websocket")
                {
                    Log.Debug($"{e.Application}: {e.Message}");
                }
                break;

            case LogLevel.Info:
                Log.Info($"{e.Application}: {e.Message}");
                break;

            case LogLevel.Warning:
                Log.Warn($"{e.Application}: {e.Message}");
                break;

            case LogLevel.Error:
                Log.Error($"{e.Application}: {e.Message}");
                break;

            case LogLevel.Critical:
                Log.Fatal($"{e.Application}: {e.Message}");
                break;

            default:
                Log.Error($"{e.Application}: {e.Message}");
                break;
            }
        }
コード例 #2
0
        public static void LogDSharp(this ILogger logger, object _, DebugLogMessageEventArgs e)
        {
            switch (e.Level)
            {
            case DSharpPlus.LogLevel.Debug:
                logger.LogDebug(e.Exception, e.Message);
                break;

            case DSharpPlus.LogLevel.Info:
                logger.LogInformation(e.Exception, e.Message);
                break;

            case DSharpPlus.LogLevel.Warning:
                logger.LogWarning(e.Exception, e.Message);
                break;

            case DSharpPlus.LogLevel.Error:
                logger.LogError(e.Exception, e.Message);
                break;

            case DSharpPlus.LogLevel.Critical:
                logger.LogCritical(e.Exception, e.Message);
                break;

            default:
                throw new Exception("Unknown log level!", e.Exception);
            }
        }
コード例 #3
0
ファイル: Bot.cs プロジェクト: Topping/DiscordWowTracker
        private async Task SendLogToDiscord(DebugLogMessageEventArgs logMessage)
        {
            if (_botConfiguration.LogChannelId == null || !_clientIsReady)
            {
                return;
            }

            var guild = _discordClient.Guilds.First();

            var channels = await guild.Value.GetChannelsAsync();

            var channel = channels.Single(x => x.Id == _botConfiguration.LogChannelId);

            var embedBuilder = new DiscordEmbedBuilder()
                               .WithTitle($"{logMessage.Level} Log")
                               .WithColor(DiscordColor.Red)
                               .WithFooter(logMessage.Timestamp.ToString("dd/MM/yyyy HH:mm:ss"));

            if (!string.IsNullOrWhiteSpace(logMessage.Message))
            {
                embedBuilder.AddField("Message", $"```{logMessage.Message}```");
            }

            if (logMessage.Exception != null && !string.IsNullOrWhiteSpace(logMessage.Exception.ToString()))
            {
                embedBuilder.AddField("Stack", $"```{logMessage.Exception}```");
            }

            await channel.SendMessageAsync(embed : embedBuilder.Build()).ConfigureAwait(false);
        }
コード例 #4
0
ファイル: Bot.cs プロジェクト: zH4x/DSharpPlus-Example-Bot
        /// <summary>
        /// Logs DSharpPlus internal errors with NLog
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e">DebugLogMessageEventArgs object</param>
        private void OnLogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            var message = $"{e.Application}: {e.Message}";

            switch (e.Level)
            {
            case LogLevel.Debug:
                Logger.Debug(e.Exception, message);
                break;

            case LogLevel.Info:
                Logger.Info(e.Exception, message);
                break;

            case LogLevel.Warning:
                Logger.Warn(e.Exception, message);
                break;

            case LogLevel.Error:
                Logger.Error(e.Exception, message);
                break;

            case LogLevel.Critical:
                Logger.Fatal(e.Exception, message);
                break;
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: biskit1/SchedulerBot
        private void OnLogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            var logger = ServiceProvider.GetService <ILogger <Program> >();

            switch (e.Level)
            {
            case DSharpPlus.LogLevel.Critical:
                logger.LogCritical($"[{e.Application}] {e.Message}");
                break;

            case DSharpPlus.LogLevel.Debug:
                logger.LogDebug($"[{e.Application}] {e.Message}");
                break;

            case DSharpPlus.LogLevel.Error:
                logger.LogError($"[{e.Application}] {e.Message}");
                break;

            case DSharpPlus.LogLevel.Info:
                logger.LogInformation($"[{e.Application}] {e.Message}");
                break;

            case DSharpPlus.LogLevel.Warning:
                logger.LogWarning($"[{e.Application}] {e.Message}");
                break;
            }
        }
コード例 #6
0
ファイル: Bot.cs プロジェクト: Topping/DiscordWowTracker
        private void OnLogMessageReceived(object sender, DebugLogMessageEventArgs logMessage)
        {
            switch (logMessage.Level)
            {
            case LogLevel.Debug:
                Log.Debug(logMessage.Exception, logMessage.Message);
                break;

            case LogLevel.Info:
                Log.Information(logMessage.Exception, logMessage.Message);
                break;

            case LogLevel.Warning:
                Log.Warning(logMessage.Exception, logMessage.Message);
                break;

            case LogLevel.Error:
                Log.Error(logMessage.Exception, logMessage.Message);
                break;

            case LogLevel.Critical:
                Log.Fatal(logMessage.Exception, logMessage.Message);
                break;
            }

            // There are set of log messages we want to swallow and never show to the
            // user or log to Discord itself, therefore check if we want to send
            // the message to Discord
            if (logMessage.Level == LogLevel.Critical &&
                !_ignoredLogMessages.Any(d => logMessage.Message.StartsWith(d)))
            {
                // Fire and forget
                _ = SendLogToDiscord(logMessage);
            }
        }
コード例 #7
0
ファイル: Bot.cs プロジェクト: WiseGus/DiscordBot
        private void LogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            ConsoleWrite($"[{e.Timestamp}]", ConsoleColor.Gray);

            var color = ConsoleColor.Gray;

            if (e.Application == _botConfig.BotName)
            {
                color = ConsoleColor.White;
            }
            ConsoleWrite($"[{ e.Application}]", color);

            switch (e.Level)
            {
            case LogLevel.Info:
                color = ConsoleColor.Green;
                break;

            case LogLevel.Warning:
                color = ConsoleColor.Yellow;
                break;

            case LogLevel.Error:
                color = ConsoleColor.Red;
                break;

            case LogLevel.Critical:
                color = ConsoleColor.DarkRed;
                break;
            }
            ConsoleWrite($"[{e.Level}]", color);
            ConsoleWrite($"{e.Message}", ConsoleColor.Gray, true);
        }
コード例 #8
0
ファイル: LogMessage.cs プロジェクト: MysteryMS/KurosawaDia
 internal LogMessage(DebugLogMessageEventArgs e)
 {
     Level       = (NivelLog)Convert.ToByte(e.Level);
     Application = e.Application;
     Message     = e.Message;
     Timestamp   = e.Timestamp;
 }
コード例 #9
0
 private static void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
 {
     if (e.Application != "REST")
     {
         //GameLog.Log($"[{e.Application}] [{e.Level}] {e.Message}", "Logger");
     }
 }
コード例 #10
0
        private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            string message = "DSharpPlus: " + e.Message;

            switch (e.Level)
            {
            case LogLevel.Critical:
                log.Fatal(message);
                break;

            case LogLevel.Debug:
                log.Debug(message);
                break;

            case LogLevel.Error:
                log.Error(message);
                break;

            case LogLevel.Info:
                log.Info(message);
                break;

            case LogLevel.Warning:
                log.Warn(message);
                break;
            }
        }
コード例 #11
0
        public void FrameworkLog(object sender, DebugLogMessageEventArgs args)
        {
            // Bridge D#+ logging to Serilog
            LogEventLevel level = LogEventLevel.Verbose;

            if (args.Level == LogLevel.Critical)
            {
                level = LogEventLevel.Fatal;
            }
            else if (args.Level == LogLevel.Debug)
            {
                level = LogEventLevel.Debug;
            }
            else if (args.Level == LogLevel.Error)
            {
                level = LogEventLevel.Error;
            }
            else if (args.Level == LogLevel.Info)
            {
                level = LogEventLevel.Information;
            }
            else if (args.Level == LogLevel.Warning)
            {
                level = LogEventLevel.Warning;
            }

            _logger.Write(level, args.Exception, "D#+ {Source}: {Message}", args.Application, args.Message);
        }
コード例 #12
0
        private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            var msg = $"DISCORD: [{e.Application}] {e.Message}";

            if (this.MessageLogged != null)
            {
                this.MessageLogged(msg);
            }
        }
コード例 #13
0
 private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
 {
     this.RunOnUiThread(() =>
     {
         this.LogItemsAdapter.Add(this.FormatLogItem(e));
         this.LogItemsAdapter.NotifyDataSetChanged();
         this.BotLog.SmoothScrollToPosition(this.LogItemsAdapter.Count - 1);
     });
 }
コード例 #14
0
ファイル: Bot.cs プロジェクト: versx/RaidLobbyist
        private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            //Color
            ConsoleColor color;

            switch (e.Level)
            {
            case LogLevel.Error: color = ConsoleColor.DarkRed; break;

            case LogLevel.Warning: color = ConsoleColor.Yellow; break;

            case LogLevel.Info: color = ConsoleColor.White; break;

            case LogLevel.Critical: color = ConsoleColor.Red; break;

            case LogLevel.Debug:
            default: color = ConsoleColor.DarkGray; break;
            }

            //Source
            var sourceName = e.Application;

            //Text
            var text = e.Message;

            //Build message
            var builder = new System.Text.StringBuilder(text.Length + (sourceName?.Length ?? 0) + 5);

            if (sourceName != null)
            {
                builder.Append('[');
                builder.Append(sourceName);
                builder.Append("] ");
            }

            for (var i = 0; i < text.Length; i++)
            {
                //Strip control chars
                var c = text[i];
                if (!char.IsControl(c))
                {
                    builder.Append(c);
                }
            }

            if (text != null)
            {
                builder.Append(": ");
                builder.Append(text);
            }

            text = builder.ToString();
            Console.ForegroundColor = color;
            Console.WriteLine(text);
            Console.ResetColor();
        }
コード例 #15
0
        private static void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            if (e.Application == "REST")
            {
                return;
            }

            Console.BackgroundColor = ConsoleColor.Black;
            Console.ForegroundColor = ConsoleColor.DarkRed;
            Console.Write(DateTime.Now.ToString("HH:mm:ss,ff"));
            Console.Write(e.Timestamp);
            Console.ResetColor();
            Console.Write(" ");
            Console.BackgroundColor = ConsoleColor.DarkYellow;
            Console.ForegroundColor = ConsoleColor.Black;
            Console.Write(e.Application);
            Console.ResetColor();
            Console.Write(" : ");
            switch (e.Level)
            {
            case LogLevel.Critical:
            case LogLevel.Error:
                Console.ForegroundColor = ConsoleColor.Red;
                break;

            case LogLevel.Warning:
                Console.ForegroundColor = ConsoleColor.DarkYellow;
                break;

            case LogLevel.Info:
                Console.ForegroundColor = ConsoleColor.White;
                break;

            case LogLevel.Debug:
                Console.ForegroundColor = ConsoleColor.Green;
                break;
            }

            Console.WriteLine(e.Message);
            //File.AppendAllText(_config.LogFile, $"[{e.Level}] [{e.Timestamp}] [{e.Application}] : {e.Message}\n");

            Console.ResetColor();

            var s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

            var broadcast = IPAddress.Parse("192.168.1.21");

            var sendbuf = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(new LogMessage
            {
                Loglevel = e.Level.ToString(), Message = e.Message, Source = e.Application, Timestamp = e.Timestamp
            }));
            var ep = new IPEndPoint(broadcast, 42915);

            s.SendTo(sendbuf, ep);
        }
コード例 #16
0
        private void OnLogMessage(object sender, DebugLogMessageEventArgs e)
        {
            if (this.LogMessage == null)
            {
                return;
            }

            var msg = string.Format("[{0:yyyy-MM-dd HH:mm:ss}] [{1,5}] [{2,10}] {3}", e.Timestamp, e.Level, e.Application, e.Message);

            this.LogMessage(msg);
        }
コード例 #17
0
ファイル: DiscordLogger.cs プロジェクト: DraxCodes/Azure-Test
 internal void Log(object sender, DebugLogMessageEventArgs e)
 {
     if (e.Level == LogLevel.Critical)
     {
         _logger.LogError(e.Message);
     }
     else
     {
         _logger.Log(e.Message);
     }
 }
コード例 #18
0
ファイル: Program.cs プロジェクト: InvictusSoftware/FlawBOT
        private static void Client_LogMessageHandler(object sender, DebugLogMessageEventArgs ea)
        {
            lock (_lock)
            {
                Console.BackgroundColor = ConsoleColor.Black;

                Console.ForegroundColor = ConsoleColor.Gray;
                Console.Write("[{0:yyyy-MM-dd HH:mm:ss zzz}] ", ea.Timestamp);

                Console.ForegroundColor = ConsoleColor.Gray;
                Console.Write("[{0}] ", ea.Application);

                var ccfg = ConsoleColor.Gray;
                var ccbg = ConsoleColor.Black;
                switch (ea.Level)
                {
                case LogLevel.Critical:
                    ccfg = ConsoleColor.Black;
                    ccbg = ConsoleColor.Red;
                    break;

                case LogLevel.Error:
                    ccfg = ConsoleColor.Red;
                    break;

                case LogLevel.Warning:
                    ccfg = ConsoleColor.Yellow;
                    break;

                case LogLevel.Info:
                    ccfg = ConsoleColor.Cyan;
                    break;

                case LogLevel.Debug:
                    ccfg = ConsoleColor.Magenta;
                    break;

                default:
                    ccfg = ConsoleColor.Gray;
                    ccbg = ConsoleColor.Black;
                    break;
                }
                Console.ForegroundColor = ccfg;
                Console.BackgroundColor = ccbg;
                Console.Write("[{0}]", ea.Level.ToString());

                Console.BackgroundColor = ConsoleColor.Black;
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write(" ");
                Console.WriteLine(ea.Message);
            }
        }
コード例 #19
0
        private int sessionStartAttemptFullRestartCounter = 4; // 4 = 4*30s = 2 minutes
        private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            if (e.Level == LogLevel.Warning && e.Message == "Session start attempt was made while another session is active") // if we are in the session start attempt loop
            {
                this.sessionStartAttemptFullRestartCounter--;

                if (this.sessionStartAttemptFullRestartCounter <= 0)
                {
                    Log.WriteLogMessage("Session start attempt shenanigans are going on. Restarting!", LogOutputLevel.Warning);
                    Shutdown(ShutdownAction.Restart);
                }
            }
        }
コード例 #20
0
ファイル: Program.cs プロジェクト: CodyFraker/Fitz
        private void ConvertToSerilog(object sender, DebugLogMessageEventArgs args)
        {
            LogEventLevel level = args.Level switch
            {
                LogLevel.Critical => LogEventLevel.Fatal,
                LogLevel.Error => LogEventLevel.Error,
                LogLevel.Info => LogEventLevel.Information,
                LogLevel.Warning => LogEventLevel.Warning,
                _ => LogEventLevel.Debug,
            };

            Log.Write(level, args.Exception, $"[{args.Application}] {args.Message}");
        }
コード例 #21
0
    private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
    {
        if (!MainThreadQueue.Instance.IsMain())
        {
            MainThreadQueue.Instance.Queue(() => DebugLogger_LogMessageReceived(sender, e));
            return;
        }

        var msg  = $"{Log.Timestamp()} Discord-{e.Level}: {e.Message}";
        var push = PushNotification.Instance;

        push.Push(e.Message, e.Level.ToString());
    }
コード例 #22
0
ファイル: C3POBot.cs プロジェクト: wappy-swgoh/C3PO
        private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            Console.ForegroundColor = ConsoleColor.Gray;
            Console.Write("[{0:yyyy-MM-dd HH:mm:ss zzz}] ", e.Timestamp.ToLocalTime());

            var tag = e.Application;

            if (tag.Length > 12)
            {
                tag = tag.Substring(0, 12);
            }
            if (tag.Length < 12)
            {
                tag = tag.PadLeft(12, ' ');
            }
            Console.Write("[{0}] ", tag);

            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.Write("[{0}] ", string.Concat("SHARD ", this.Discord.ShardId.ToString("00")));

            switch (e.Level)
            {
            case LogLevel.Critical:
            case LogLevel.Error:
                Console.ForegroundColor = ConsoleColor.Red;
                break;

            case LogLevel.Warning:
                Console.ForegroundColor = ConsoleColor.Yellow;
                break;

            case LogLevel.Info:
                Console.ForegroundColor = ConsoleColor.Cyan;
                break;

            case LogLevel.Debug:
                Console.ForegroundColor = ConsoleColor.Magenta;
                break;

            case LogLevel.Unnecessary:
            default:
                Console.ForegroundColor = ConsoleColor.DarkGreen;
                break;
            }
            Console.Write("[{0}] ", e.Level.ToString().PadLeft(11));

            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine(e.Message);
        }
コード例 #23
0
        private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            lock (this._logLock)
            {
                var fg = Console.ForegroundColor;
                var bg = Console.BackgroundColor;

                Console.ForegroundColor = ConsoleColor.White;
                Console.BackgroundColor = ConsoleColor.Black;
                Console.Write("[{0:yyyy-MM-dd HH:mm:ss zzz}] [{1}] ", e.Timestamp, e.Application.ToFixedWidth(12));

                switch (e.Level)
                {
                case LogLevel.Critical:
                    Console.BackgroundColor = ConsoleColor.Red;
                    Console.ForegroundColor = ConsoleColor.Black;
                    break;

                case LogLevel.Error:
                    Console.ForegroundColor = ConsoleColor.Red;
                    break;

                case LogLevel.Warning:
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    break;

                case LogLevel.Info:
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    break;

                case LogLevel.Debug:
                    Console.ForegroundColor = ConsoleColor.Magenta;
                    break;
                }
                Console.Write("[{0}]", e.Level.ToString().ToFixedWidth(4));

                Console.ForegroundColor = ConsoleColor.White;
                Console.BackgroundColor = ConsoleColor.Black;
                Console.WriteLine(" [{0:00}] {1}", this.ShardId, e.Message);

                Console.ForegroundColor = fg;
                Console.BackgroundColor = bg;
            }
        }
コード例 #24
0
        private string FormatLogItem(DebugLogMessageEventArgs e)
        {
            var sb = new StringBuilder();

            var ls = e.Level.ToString();

            ls = ls.Substring(0, Math.Min(ls.Length, 5));

            var @as = e.Application;

            @as = @as.Substring(0, Math.Min(@as.Length, 10));

            sb.AppendFormat("[{0:yyyy-MM-dd HH:mm:ss}] ", e.Timestamp);
            sb.AppendFormat("[{0}] ", ls.PadLeft(5, ' '));
            sb.AppendFormat("[{0}] ", @as.PadLeft(10, ' '));
            sb.AppendLine(e.Message);

            return(sb.ToString());
        }
コード例 #25
0
        public static void LogDSharpPlusLogMessage(DebugLogMessageEventArgs e)
        {
            LogLevel logLevel = LogLevel.Off;

            switch (e.Level)
            {
            case DSharpPlus.LogLevel.Debug: logLevel = LogLevel.Debug; break;

            case DSharpPlus.LogLevel.Info: logLevel = LogLevel.Info; break;

            case DSharpPlus.LogLevel.Warning: logLevel = LogLevel.Warn; break;

            case DSharpPlus.LogLevel.Error: logLevel = LogLevel.Error; break;

            case DSharpPlus.LogLevel.Critical: logLevel = LogLevel.Fatal; break;
            }

            LogManager.GetLogger(e.Application).Log(logLevel, e.Exception, e.Message);
        }
コード例 #26
0
ファイル: PinsService.cs プロジェクト: WamWooWam/GaiaPins
        private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            var level = e.Level switch
            {
                LogLevel.Critical => MSLogLevel.Critical,
                LogLevel.Error => MSLogLevel.Error,
                LogLevel.Warning => MSLogLevel.Warning,
                LogLevel.Info => MSLogLevel.Information,
                LogLevel.Debug => MSLogLevel.Debug,
                _ => MSLogLevel.Trace
            };

            if (e.Exception != null)
            {
                _clientLogger.Log(level, e.Exception, e.Message);
            }
            else
            {
                _clientLogger.Log(level, e.Message);
            }
        }
コード例 #27
0
        private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
        {
            var clr = ConsoleColor.Gray;

            switch (e.Level)
            {
            case LogLevel.Info:
                clr = ConsoleColor.White;
                break;

            case LogLevel.Warning:
                clr = ConsoleColor.Yellow;
                break;

            case LogLevel.Error:
            case LogLevel.Critical:
                clr = ConsoleColor.Red;
                break;
            }

            Term.Log($"{e.Level}: {e.Message}", clr);
        }
コード例 #28
0
    private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
    {
        if (!MainThreadQueue.Instance.IsMain())
        {
            MainThreadQueue.Instance.Queue(() => DebugLogger_LogMessageReceived(sender, e));
            return;
        }

        var msg  = $"{Log.Timestamp()} Discord-{e.Level}: {e.Message}";
        var push = PushNotification.Instance;

        switch (e.Level)
        {
        case LogLevel.Debug:
            Debug.Log(msg);
            push.Add(e.Message, PushColor.Debug);
            break;

        case LogLevel.Info:
            Debug.Log(msg);
            push.Add(e.Message, PushColor.Info);
            break;

        case LogLevel.Warning:
            Debug.LogWarning(msg);
            push.Add(e.Message, PushColor.Warning);
            break;

        case LogLevel.Error:
            Debug.LogError(msg);
            push.Add(e.Message, PushColor.Error);
            break;

        case LogLevel.Critical:
            Debug.LogAssertion(msg);
            push.Add(e.Message, PushColor.Error);
            break;
        }
    }
コード例 #29
0
 // this method writes all of bot's log messages to debug output
 private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
 => Debug.WriteLine($"[{e.Timestamp.ToString("yyyy-MM-dd HH:mm:ss")}] [{e.Application}] [{e.Level}] {e.Message}");
コード例 #30
0
 private void DebugLogger_LogMessageReceived(object sender, DebugLogMessageEventArgs e)
 {
     Acao.Invoke(new LogMessage(e));
 }