主要记录最近遇到的一些开发问题,解决方法。
1. Python 的日志模块
Python 的 logging 模块主要由四个部分组成:
- Loggers: 可供程序直接调用的接口
- Handlers: 将日志记录输出至合适的位置
- Filters: 提供更细粒度的日志是否输出判断
- Formatters: 定制最终记录打印的布局格式
看下面这个例子,log1.py 文件
|
|
直接执行,输出:
|
|
log2 文件
|
|
直接执行,输出:
|
|
format 部分参数:
- %(levelno)s:打印日志级别的数值
- %(levelname)s:打印日志级别的名称
- %(pathname)s:打印当前执行程序的路径,其实就是 sys.argv[0]
- %(filename)s:打印当前执行程序名
- %(funcName)s:打印日志的当前函数
- %(lineno)d:打印日志的当前行号
- %(asctime)s:打印日志的时间
- %(thread)d:打印线程 ID
- %(threadName)s:打印线程名称
- %(process)d:打印进程 ID
- %(processName)s:打印线程名称
- %(module)s:打印模块名称
- %(message)s:打印日志信息
2. Python 的调试工具
- pdb
The Python Debugger 是官方调试器,内置在 Python 标准模块中。
使用方式:$python -m pdb scriptfile
或者在代码中 pdb.set_trace()
- ipdb
基于 ipython 的 pdb,是一个增强版的 pdb。
使用方式:$ipdb scriptfile
或 $python –pdb scriptfile
- PuDB
全屏的基于控制台的可视化调试器。
使用方式:$python -m pudb.run scriptfile
或 $pudb scriptfile
3. Babel 转码器
ES6 提供了许多新特性,但并不是所有的浏览器都能够完美支持,ES5 支持得好很多。Babel 是一个 ES6 转码器,可以将 ES6 代码转为 ES5 代码。这意味着,你可以用 ES6 的语法编写程序,又不用担心现有环境是否支持。
|
|
Babel 的配置文件是 .babelrc ,存放在项目的根目录下。使用该文件设置转码规则和插件,基本格式如下:
|
|
4. Badge 生成器
开源项目的文档中,通常会添加各种 Badge 。这些 Badge 有的是写死的,有的是第三方工具动态获取的。推荐 http://shields.io/ 可以非常方便的生成各种 Badge 。
5. 代码统计工具 - Cloc
Cloc 是一款使用 Perl 语言开发的开源代码统计工具,支持多平台、多语言,能够计算指定目标文件或文件夹中的文件数(files)、空白行数(blank)、注释行数(comment)和代码行数(code)。
Windows 下,可以先下载安装 msys2,使用 $pacman -S cloc
安装 Cloc,然后统计:
|
|
6. Django Model 的更新信号处理
通过 created
字段,可以区分 Django Model 的新建和更新操作。
|
|