## 作用
把日志文件拖动到窗口即可解析日志
## 使用
安装
```commandline
pip install LogTranslate
```
项目根目录 创建 config.py
里面定义字段 translator数组
```commandline
translators = [SysLogTranslator(tag_translators=[BluetoothTranslator(), CrashPatternTranslator()])]
```
SysLogTranslator是将文件中每行字符串解析出 tag,time,pid,msg
SysLogTranslator的参数 tag_translators 是数组 用来解析 各种tag对应的内容
解析tag的基类有
- TagPatternTranslator 通过正则匹配tag然后解析
```python
class CrashPatternTranslator(TagPatternTranslator):
def __init__(self):
super().__init__({
r"AndroidRuntime|FATAL.*|System.err.*": activity_task_translator
})
def activity_task_translator(tag, msg): # 这里两个参数
# todo 这里需要过滤包名
return Log(translated=" ------ %s > %s----- " % (tag, msg), level=Level.e)
```
- TagStrTranslator 通过字符串匹配tag然后解析
```python
class BluetoothTranslator(TagStrTranslator):
def __init__(self):
super().__init__({
"BluetoothAdapter": bluetooth_adapter,
})
def bluetooth_adapter(msg):# 这里一个参数
# todo 这里需要过滤包名
return Log(translated=" ------ %s > %s----- " % (tag, msg), level=Level.e)
```
- SecStrTagTranslator 解析二级tag
```python
class SecTagDemoTranslator(SecStrTagTranslator):
def __init__(self):
super().__init__("DFJ",
lambda string: re.search(r"(?P<tag>.*?) *:(?P<msg>.*)", string),
[
SysLogTranslator({
"sec_tag": self.new_tag
})
])
def new_tag(self, tag, msg):# 这里两个参数
return Log(translated=msg)
```
## 打包成 exe
#### 1 ,项目根目录创建 ui.py
```python
if __name__ == "__main__":
app = QApplication(sys.argv)
window = PyQt6Window()
window.show()
sys.exit(app.exec())
```
#### 2, 执行打包命令
```commandline
pyinstaller -n [name] --hidden-import config -F -w [-i tools.ico] ui.py
```
### 库地址
https://pypi.org/project/LogTranslate/0.1/
Raw data
{
"_id": null,
"home_page": "https://github.com/5hmlA/PyTools",
"name": "LogTranslate",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "tools log translate",
"author": "5hmlA",
"author_email": "jonas.jzy@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/48/86/7f1bcc96d74f8f9a52a3165ae5f8e686bd6a98367e4f31fcbc8ce609368d/LogTranslate-1.3.9.tar.gz",
"platform": null,
"description": "## \u4f5c\u7528\r\n\r\n\u628a\u65e5\u5fd7\u6587\u4ef6\u62d6\u52a8\u5230\u7a97\u53e3\u5373\u53ef\u89e3\u6790\u65e5\u5fd7\r\n\r\n## \u4f7f\u7528\r\n\r\n\u5b89\u88c5\r\n\r\n```commandline\r\npip install LogTranslate\r\n```\r\n\r\n\u9879\u76ee\u6839\u76ee\u5f55 \u521b\u5efa config.py\r\n\u91cc\u9762\u5b9a\u4e49\u5b57\u6bb5 translator\u6570\u7ec4\r\n\r\n```commandline\r\ntranslators = [SysLogTranslator(tag_translators=[BluetoothTranslator(), CrashPatternTranslator()])]\r\n```\r\n\r\nSysLogTranslator\u662f\u5c06\u6587\u4ef6\u4e2d\u6bcf\u884c\u5b57\u7b26\u4e32\u89e3\u6790\u51fa tag,time,pid,msg\r\nSysLogTranslator\u7684\u53c2\u6570 tag_translators \u662f\u6570\u7ec4 \u7528\u6765\u89e3\u6790 \u5404\u79cdtag\u5bf9\u5e94\u7684\u5185\u5bb9\r\n\u89e3\u6790tag\u7684\u57fa\u7c7b\u6709\r\n\r\n- TagPatternTranslator \u901a\u8fc7\u6b63\u5219\u5339\u914dtag\u7136\u540e\u89e3\u6790\r\n ```python\r\n class CrashPatternTranslator(TagPatternTranslator):\r\n def __init__(self):\r\n super().__init__({\r\n r\"AndroidRuntime|FATAL.*|System.err.*\": activity_task_translator\r\n })\r\n \r\n def activity_task_translator(tag, msg): # \u8fd9\u91cc\u4e24\u4e2a\u53c2\u6570\r\n # todo \u8fd9\u91cc\u9700\u8981\u8fc7\u6ee4\u5305\u540d\r\n return Log(translated=\" ------ %s > %s----- \" % (tag, msg), level=Level.e)\r\n\r\n ```\r\n\r\n- TagStrTranslator \u901a\u8fc7\u5b57\u7b26\u4e32\u5339\u914dtag\u7136\u540e\u89e3\u6790\r\n ```python\r\n class BluetoothTranslator(TagStrTranslator):\r\n def __init__(self):\r\n super().__init__({\r\n \"BluetoothAdapter\": bluetooth_adapter,\r\n })\r\n \r\n def bluetooth_adapter(msg):# \u8fd9\u91cc\u4e00\u4e2a\u53c2\u6570\r\n # todo \u8fd9\u91cc\u9700\u8981\u8fc7\u6ee4\u5305\u540d\r\n return Log(translated=\" ------ %s > %s----- \" % (tag, msg), level=Level.e)\r\n\r\n ```\r\n- SecStrTagTranslator \u89e3\u6790\u4e8c\u7ea7tag\r\n ```python\r\n class SecTagDemoTranslator(SecStrTagTranslator):\r\n def __init__(self):\r\n super().__init__(\"DFJ\",\r\n lambda string: re.search(r\"(?P<tag>.*?) *:(?P<msg>.*)\", string),\r\n [\r\n SysLogTranslator({\r\n \"sec_tag\": self.new_tag\r\n })\r\n ])\r\n\r\n def new_tag(self, tag, msg):# \u8fd9\u91cc\u4e24\u4e2a\u53c2\u6570\r\n return Log(translated=msg)\r\n ```\r\n\r\n## \u6253\u5305\u6210 exe\r\n\r\n#### 1 \uff0c\u9879\u76ee\u6839\u76ee\u5f55\u521b\u5efa ui.py\r\n\r\n```python\r\n\r\nif __name__ == \"__main__\":\r\n app = QApplication(sys.argv)\r\n window = PyQt6Window()\r\n window.show()\r\n sys.exit(app.exec())\r\n```\r\n\r\n#### 2\uff0c \u6267\u884c\u6253\u5305\u547d\u4ee4\r\n\r\n```commandline\r\n\r\npyinstaller -n [name] --hidden-import config -F -w [-i tools.ico] ui.py\r\n\r\n```\r\n\r\n### \u5e93\u5730\u5740\r\n\r\nhttps://pypi.org/project/LogTranslate/0.1/\r\n\r\n",
"bugtrack_url": null,
"license": "MIT Licence",
"summary": "A Python library for translate log from log files",
"version": "1.3.9",
"project_urls": {
"Homepage": "https://github.com/5hmlA/PyTools"
},
"split_keywords": [
"tools",
"log",
"translate"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "62a2652870fb1b1cb5cd1d41a8d2827625765747f1522d83b1ad1261f15a5f63",
"md5": "b6199b5d1d4c8eacb408ef8e0f54820e",
"sha256": "4a3d1f5a9665676627639f3e870b48fee901e2fc400356605ba2ec57b3375dfa"
},
"downloads": -1,
"filename": "LogTranslate-1.3.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b6199b5d1d4c8eacb408ef8e0f54820e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 34801,
"upload_time": "2024-03-22T14:25:18",
"upload_time_iso_8601": "2024-03-22T14:25:18.956543Z",
"url": "https://files.pythonhosted.org/packages/62/a2/652870fb1b1cb5cd1d41a8d2827625765747f1522d83b1ad1261f15a5f63/LogTranslate-1.3.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "48867f1bcc96d74f8f9a52a3165ae5f8e686bd6a98367e4f31fcbc8ce609368d",
"md5": "cfe19628e7968969aff8254f7d42cd11",
"sha256": "8973880dec1a6dccace69014076ab0a1d0dd54be0d24cc8b1043fbf5425ccdf0"
},
"downloads": -1,
"filename": "LogTranslate-1.3.9.tar.gz",
"has_sig": false,
"md5_digest": "cfe19628e7968969aff8254f7d42cd11",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 31327,
"upload_time": "2024-03-22T14:25:21",
"upload_time_iso_8601": "2024-03-22T14:25:21.309673Z",
"url": "https://files.pythonhosted.org/packages/48/86/7f1bcc96d74f8f9a52a3165ae5f8e686bd6a98367e4f31fcbc8ce609368d/LogTranslate-1.3.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-22 14:25:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "5hmlA",
"github_project": "PyTools",
"github_not_found": true,
"lcname": "logtranslate"
}