前言
在用flask开发一个系统的时候, 由于要做日志分析, 所以想把flask日志写到本地文件中, 然后ELK自动收集本地日志, 开发中遇到系统的日志写不到本地文件, 只有我自己的日志能写进去
原始的方案
1 | #!/usr/bin/env python |
这样写之后, 日志输出都是正常的, 但是系统的日志, 比如请求http链接都没有打到文件中
修改后
1 | HOST_NAME = socket.gethostname() |
对比
其实两个代码除了一行没有其他的区别(后面的代码我是放到另外一个位置而已)
那就是logger = logging.getLogger('JFM')
和logger = logging.getLogger()
分析
flask 默认使用的是root loggger, 也就是第二种不带参数的logger, 当我们使用了带参数的logger, 系统的日志就不会打到文件中