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
Remote Log Server
- 启动
Remote Log Server
(点击下方状态栏的Remote Log Server:启动按钮) - 在输出通道中选中
TCP Log Server Output
- 等待客户端链接并发送日志
可以使用以下 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端口号
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。