Metadata-Version: 2.1
Name: LogTranslate
Version: 1.3.5
Summary: A Python library for translate log from log files
Home-page: https://github.com/5hmlA/PyTools
Author: 5hmlA
Author-email: jonas.jzy@gmail.com
License: MIT Licence
Keywords: tools log translate
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE.txt

## 作用

把日志文件拖动到窗口即可解析日志

## 使用

安装

```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/

