python 日志输出到终端与文件配置
Pou光明 2018-12-15
大家好,那个熟悉的我又回来了~
最近一段时间由于工作原因,用了一段时间python。接触到了坑爹的GIL锁、python日志,多进程、进程间通讯等。这次主要和大家聊一聊python日志。
我写的内容主要偏实践,如何配置、如何使用,针对一些其他设置,可以在网上找下,资料很丰富,就是略有些杂乱,这也是我自己写文章记录的一个原因。
先说下我用的环境:
①ubuntu14.0.4
②python 2.7.6
先上段代码压压惊:
#! /usr/bin/env python
# coding=utf-8
import os
import time
import logging
from Subloggerproject.sublogger import *
# 创建一个全局log
logger = logging.getLogger('main')
def logger_init(logdir='./logfiles', logfile='./logfiles/logger_test.log'):
# Log等级总开关
logger.setLevel(http://logging.INFO)
# 创建log目录
if not os.path.exists(logdir):
os.mkdir(logdir)
# 创建一个handler,用于写入日志文件
# 以append模式打开日志文件
fh = logging.FileHandler(logfile, mode='a')
# 输出到file的log等级的开关
fh.setLevel(http://logging.INFO)
# 再创建一个handler,用于输出到控制台
ch = logging.StreamHandler()
# 输出到console的log等级的开关
ch.setLevel(http://logging.INFO)
# 定义handler的输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
# formatter = logging.Formatter("%(asctime)s [%(thread)u] %(levelname)s: %(message)s")
# 为文件输出设定格式
fh.setFormatter(formatter)
# 控制台输出设定格式
ch.setFormatter(formatter)
# 设置文件输出到logger
logger.addHandler(fh)
# 设置控制台输出到logger
logger.addHandler(ch)
def test():
logger_init(logdir='./logfiles', logfile='./logfiles/logger_test.log')http://logger.info("test logger-----------------------")
logger.error("test logger-----------------------")
subloggertest = SubLoggerTest()
subloggertest.subLoggerTest()
time.sleep(1)
if __name__ == '__main__':
test()
以上是我的主程序对logger的配置,改配置既可以在终端上输出日志信息,也可以向日志文件中输出日志信息。
下面是我在另一个模块中使用的日志代码:
#! /usr/bin/env python
# coding=utf-8
import logging
# 创建一个全局log
logger = logging.getLogger('main.sublogger')
class SubLoggerTest():
def __init__(self):
pass
def subLoggerTest(self):http://logger.info("sub logger test-----------------------")
logger.error("sub logger test-----------------------")
def testSubLogger():
subloggertest = SubLoggerTest()
subloggertest.subLoggerTest()
在子模块中,只需要获取一个该模块的logger即可。
下面是程序运行结果。

下面是程序目录结构图:

欢迎大家关注我的公众号,一起交流,共同进步。

日志输出到文件nacos 配置_python 配置日志输出到终端与文件相关推荐

  1. python输出九九乘法表儿歌_python学习:输出九九乘法表

    输出九九乘法表 代码: num1 = 1 while num1 <= 9: num2 = 1 while num2 <= num1: print(str(num2)+"*&quo ...

  2. pythonopencv的配置_python配置与使用OpenCV

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  3. python 日志不会按照日期分割_python实现日志按天分割

    本文实例为大家分享了python实现日志按天分割的具体代码,供大家参考,具体内容如下 日志格式: 1.1.1.1 - - [30/Apr/2015:00:34:55 +0800] "POST ...

  4. python找不到指定的文件夹里_Python环球网在Unix中的指定文件路径中找不到*.txt

    我在Windows环境中写了一些文件,我在转换文件时遇到了麻烦.在Windows中,我通常使用类似以下内容读取目录中的所有.txt文件:pathtotxt = "C:\\Text Data\ ...

  5. python存文件的模块_python模块之StringIO/cStringIO(内存文件)

    1. StringIO/cStringIO是什么 这个模块提供了一个类,这个类的实例就像是一个文件一样可以读写,实际上读写的是一个字符串缓存,也可以称之为内存文件. StringIO和文件对象拥有共同 ...

  6. python模糊查找文件夹名字_python实现在目录中查找指定文件的方法

    本文实例讲述了python实现在目录中查找指定文件的方法.分享给大家供大家参考.具体实现方法如下: 1. 模糊查找 复制代码 代码如下: import os from glob import glob ...

  7. python文件粉碎传输_python使用stuck 实现scoket编程实现文件传输

    使用socket中的struck来实现客户端发送 服务端: # -*- coding: UTF-8 -*- import socket, time, socketserver, struct, os, ...

  8. python怎么让输出的数字右对齐_python(格式化输出)

    一.%格式化输出 1.整数的输出(参照ASCII) %o -- oct 八进制 %d -- dec 十进制(digit ) %x -- hex 十六进制 >>> print('%o' ...

  9. python中的main函数可以被其他文件调用么_Python中在脚本中引用其他文件函数的实现方法...

    在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入口脚本运行目录和sys.path中包含的路径例如包的安装地址.所以如果要在当前脚本引用其他文件,除了将文件放在和 ...

最新文章

  1. php百度自动推送代码,怎么设置百度自动推送代码安装教程-百度自动推送好处解析...
  2. HTML5 CSS3专题 诱人的实例 CSS3打造百度贴吧的3D翻牌效果
  3. Python 计算机视觉(六)—— OpenCV 进行图像量化与采样
  4. redhat9.0配置apache 出现乱码
  5. 对文件指定行进行编辑和保存 linux,linux 文本编辑命令grep sed awk(转)
  6. [转]综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation
  7. [转]Magento2开发教程 - 如何向数据库添加新表
  8. 怎么获取jquery版本_获取jQuery版本
  9. V-REP 插件教程
  10. #64-【模拟】屠城(zly#3)
  11. 【Unreal Engine探索实践】第一个ARPG游戏的探索实践——ACT类第三人称3D动作游戏的简单实现
  12. C# 学习笔记04-15
  13. 环境变量用来保存java虚拟机_____环境变量用来存储Java的编译和运行工具所在的路径,而____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。(填英文)...
  14. 如何看电脑支持最大多少内存条?仅需一个命令
  15. 集成运放的主要技术指标
  16. 计算机视觉技术应用于农业自动化,计算机视觉技术及其在自动化中的应用
  17. Java代码实现双色球小游戏2.0:完整代码(待完善)
  18. 华为金融大数据解决方案
  19. 在GeoServer中使用Udig配置的地图样式
  20. RAC实例重新配置 恢复

热门文章

  1. OpenCV之鼠标操作
  2. postgre ~模糊查询慢解决方式
  3. 绕开“陷阱“,阿里专家带你深入理解C++对象模型的特殊之处
  4. React-Native 相关
  5. 送17届学弟学妹的礼物——学生包、学生优惠合集
  6. 转载一下如何联系口语
  7. iOS的一些小技巧[转]
  8. 恭喜你们微软论坛版主成为百度知道专家
  9. 学习POI处理word
  10. C/C++ 编译器全面采用 LLVM