远程debug调试插件-Remote Log Server With Colorful Log

1 篇文章 0 订阅
1 篇文章 0 订阅

Remote Log Server With Colorful Log

当我们在一些第三方设备上进行代码编写和调试时,往往不能向本地debug一样,进入调试模式。这样情况下,我们比较常见的方式是打本地日志,但是对于一些第三方设备,我们打了日志但是并不能下载或者查看日志,或者不能实时看到日志的输出内容。

在上述情况下,对于具备Socket通讯的设备,我们可以打远程日志,即通过将日志发送至远端TCP服务器进行显示,可以达到远程日志debug的效果,对于一些脚本编写或者调试阶段来讲,非常好用。

Remote Log Server With Colorful Log是一个VSCode插件,用来在VSCode中进行远程debug调试的插件。

在VSCode中提供一个Socket TCP Server 端口,用于监听客户端的日志,并在输出通道中进行高亮显示;同时提供一个语言模式,提供对已有日志文件的高亮显示。

功能

该插件高亮基于 进行分割,单行日志中具有4个 符号,即可进行日志高亮。

日志一般具有时间、日志等级、行号、日志内容等信息,各个框架的默认格式输出都不同,但都可以通过自定义格式化输出。

在没有颜色高亮的文本中也具有良好的文本分割视觉效果,所以该插件使用 进行日志高亮,单行文本具有四个 ,就会将文本切分为以下语义,从而进行高亮。

Definition:
time | other | level | fileno | msg

Example:
2024-02-03 22:59:47,945 || DEBUG    || this is DEBUG
2024-02-03 22:59:47,945 | client ip:127.0.0.1| ERROR    || this is ERROR
2024-02-03 22:59:47,945 || CRITICAL    | log.py:12 | this is CRITICAL
2024-02-03 22:59:47,945 | client ip:127.0.0.1| WARNING    | log.py:12 | this is WARNING

image

Remote Log Server

  1. 启动 Remote Log Server(点击下方状态栏的Remote Log Server:启动按钮)
  2. 在输出通道中选中 TCP Log Server Output
  3. 等待客户端链接并发送日志

在这里插入图片描述

可以使用以下 Python(Test Version:3.10.10)代码进行测试

#!/usr/bin/env python3
# coding=utf-8
import logging
import logging.handlers

class RemoteTCPServerLogHandler(logging.StreamHandler):
    """
    """
    def __init__(self, host, port=logging.handlers.DEFAULT_TCP_LOGGING_PORT):
        logging.StreamHandler.__init__(self)
        import socket
        self.client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
        self.tcpServerAddr = (host, port) 
        self.client.connect(self.tcpServerAddr)  
        self.stream = self.client.makefile("wr")
        selfIP = self.client.getsockname()[0]
        self.formatter = logging.Formatter("%(asctime)s | " + f"Client IP:{selfIP} | " +"%(levelname)-8s |%(filename)s:%(lineno)-4d | %(message)s")

if __name__ == "__main__":
    import time
    logger = logging.getLogger('socket_logger')
    logger.addHandler(RemoteTCPServerLogHandler("127.0.0.1"))
    logger.setLevel(logging.DEBUG)
    # from loguru import logger
    while 1:
        time.sleep(0.5)
        logger.debug('This is a debug message')
        time.sleep(0.5)
        logger.info('This is an info message')
        time.sleep(0.5)
        logger.warning('This is a warning message')
        time.sleep(0.5)
        logger.error('This is an error message')
        time.sleep(0.5)
        logger.critical('This is a critical message')

Colorful Log Mode

  • 打开日志文件,选择语言模式为 ColorfulLog
    在这里插入图片描述

如何自定义颜色

settings.json中进行编辑

    "editor.tokenColorCustomizations": {
        "textMateRules": [
            {
                "name": "ColorfulLog.log-time",
                "scope": "ColorfulLog.log-time",
                "settings": {
                    "fontStyle": "",
                    "foreground": "#a5cd70"
                }
            },
            {
                "name": "ColorfulLog.log-other-info",
                "scope": "ColorfulLog.log-other-info",
                "settings": {
                    "fontStyle": "",
                    "foreground": "#0aa344"
                }
            },
            {
                "name": "ColorfulLog.log-level.DEBUG",
                "scope": "ColorfulLog.log-level.DEBUG",
                "settings": {
                    "fontStyle": "bold",
                    "foreground": "#6fc1fa"
                }
            },
            {
                "name": "ColorfulLog.log-level.INFO",
                "scope": "ColorfulLog.log-level.INFO",
                "settings": {
                    "fontStyle": "bold",
                    "foreground": "#acb2be"
                }
            },
            {
                "name": "ColorfulLog.log-level.ERROR",
                "scope": "ColorfulLog.log-level.ERROR",
                "settings": {
                    "fontStyle": "bold",
                    "foreground": "#ed6c72"
                }
            },
            {
                "name": "ColorfulLog.log-level.WARNING",
                "scope": "ColorfulLog.log-level.WARNING",
                "settings": {
                    "fontStyle": "bold",
                    "foreground": "#e5a769"
                }
            },
            {
                "name": "ColorfulLog.log-level.CRITICAL",
                "scope": "ColorfulLog.log-level.CRITICAL",
                "settings": {
                    "fontStyle": "bold underline",
                    "foreground": "#cfe31b"
                }
            },
            {
                "name": "ColorfulLog.log-level.SUCCESS",
                "scope": "ColorfulLog.log-level.SUCCESS",
                "settings": {
                    "fontStyle": "bold",
                    "foreground": "#b1de82"
                }
            },
            {
                "name": "ColorfulLog.log-fileno",
                "scope": "ColorfulLog.log-fileno",
                "settings": {
                    "fontStyle": "",
                    "foreground": "#b0aecf"
                }
            }
        ]
    }

插件配置

在插件配置中搜索 Remote Log Server With Colorful Log

Remote Log Server With Colorful Log: Host为本地TCP服务器的Host地址

Remote Log Server With Colorful Log: Port为本地TCP服务器的Port端口号

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值