在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:启动按钮) - 在输出通道中选中
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')
- 打开日志文件,选择语言模式为
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端口号
查看 CHANGELOG
标签以了解每个版本的更改。
在 GitHub 的 问题页面上报告任何问题。请遵循模板并尽可能添加详细信息。
该扩展的源代码托管在 GitHub 上。非常欢迎贡献、拉取请求、建议和错误报告。
- 请将任何问题和建议发布到 GitHub 的 问题页面。对于功能请求或建议,请添加
feature request
标签。 - 要贡献代码,请先 fork 项目,然后创建一个 pull 请求合并到主分支。如果你进行了显著的功能更改,请更新 README。
- 目前尚无官方的贡献指南或行为准则,但请遵循标准的开源规范,并在发表任何评论时保持尊重。
该项目使用 MIT 许可证授权 - 详细信息请参阅 LICENSE 文件。