在把日志写入文件的同时在控制台输出

示例代码如下:

#coding=utf-8import logging
import time
import os
dir = os.path.dirname(os.path.abspath('.'))
log_path = dir + '\\log'class Log:def __init__(self):self.logname = os.path.join(log_path, '{0}.log'.format(time.strftime('%Y-%m-%d')))def __printconsole(self, level, message):# 创建一个loggerlogger = logging.getLogger()logger.setLevel(logging.DEBUG)# 创建一个handler,用于写入日志文件fh = logging.FileHandler(self.logname,'a',encoding='utf-8')fh.setLevel(logging.DEBUG)# 再创建一个handler,用于输出到控制台ch = logging.StreamHandler()ch.setLevel(logging.DEBUG)# 定义handler的输出格式formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')fh.setFormatter(formatter)ch.setFormatter(formatter)# 给logger添加handlerlogger.addHandler(fh)logger.addHandler(ch)# 记录一条日志if level == 'info':logger.info(message)elif level == 'debug':logger.debug(message)elif level == 'warning':logger.warning(message)elif level == 'error':logger.error(message)logger.removeHandler(ch)logger.removeHandler(fh)# 关闭打开的文件fh.close()def debug(self,message):self.__printconsole('debug', message)def info(self,message):self.__printconsole('info', message)def warning(self,message):self.__printconsole('warning', message)def error(self,message):self.__printconsole('error', message)if __name__ == '__main__':log = Log()log.info('info msg1000013333')log.debug('debug msg')log.warning('warning msg')log.error('error msg')

  输出结果如下:

> "D:\Python27\python.exe"  "D:\work\code\test\test\wirteLog.py"
2017-05-09 15:09:32,763 - root - INFO - info msg1000013333
2017-05-09 15:09:32,769 - root - DEBUG - debug msg
2017-05-09 15:09:32,776 - root - WARNING - warning msg
2017-05-09 15:09:32,782 - root - ERROR - error msg

转载于:https://www.cnblogs.com/saryli/p/6830674.html

日志打印longging模块(控制台和文件同时输出)相关推荐

  1. log日志:打印日志到控制台、文件、日志文件分区、打印错误日志到文件

    springboot默认会加载classpath:logback-spring.xml文件 如果需要自定义文件名称,在application.properties中配置logging.config 选 ...

  2. Go标准库日志打印,以及同时输出到控制台和文件

    打印 在使用go写一些小程序时,我们没必要引入额外的包,直接使用fmt标准包打印即可: import "fmt"func main() {fmt.Println("lin ...

  3. 增加内核的ceph模块的日志打印

    本文主要是在梳理cephfs内核方式挂载的内核代码逻辑所做的准备 环境:Centos 7.5 内核源码版本:3.10.0-862.el7.x86_64 打开ceph模块的debug信息 单独编译cep ...

  4. python 打印模块_Python 日志打印模块

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  5. 为何把日志打印到控制台很慢?

    原文 在容器打印日志到控制台阻塞的排障的时候看到一个观点: 把日志打印到控制台要比打印到文件慢,而且是非常慢. log4j2和logback的两个issue官方也提到了这一点(见LOG4J2-2239 ...

  6. 控制台打印_SpringBoot2.0 基础案例(02):配置Log4j2,实现不同环境日志打印

    一.Log4j2日志简介 日志打印是了解Web项目运行的最直接方式,所以在项目开发中是需要首先搭建好的环境. 1.Log4j2特点 1)核心特点 相比与其他的日志系统,log4j2丢数据这种情况少:d ...

  7. 使用log4j将日志输送到控制台、文件或数据库中

    1.log4j简述 log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),是Apache一个开源项目. Log4j是高度可配置的,并可通过在运行时的外部文件配置.它根据记录的优先级别, ...

  8. Spring boot配置logback日志打印到指定路径文件

    在实际项目开发中,一般都是使用log打印日志到指定路径,生成文件,而平时使用的System.out.pring()只能输出日志到控制台. 当我们把项目打成war包部署到服务器上,会有不用的用户使用我们 ...

  9. Android日志输出到控制台、文件(XLog开源日志工具)

    Android日志输出到控制台.文件(XLog开源日志工具) Android项目开发中,需要将Log同时输出到控制台 与 文件,并要求将日志文件压缩并上传到远程服务端(便于分析App使用过程中用户反馈 ...

  10. 基于spdlog实现日志控制台输出、文件输出或控制台+文件同时输出

    基于spdlog封装了一套接口,可实现控制台log输出.文件log输出,或控制台+文件同时输出,根据自己需求自由切换.亲测OK,分享一下. 头文件定义基类HrgLogger和三个子类ConsoleLo ...

最新文章

  1. AD RMS高可用(三)部署RMS根群集服务器
  2. 如何用python写程序设置当前打印机为默认打印机_从Python打印到标准打印机?
  3. 这些面试题你会吗?Java-类与对象再不了解你就out啦
  4. c++ 函数过长 拆分_实用EXECL办公函数 【多条件排名】
  5. VTK:填充孔用法实战
  6. JS实现刷新iframe的方法
  7. java释放锁_java – 一个线程在完成后释放锁吗?
  8. TypeError object of type ‘type‘ has no len()—Python报错问题:
  9. 专题:大数据安全和隐私保护
  10. linux 查看触摸屏信息,英创信息技术eGalax触摸屏在Linux/X11下的标定方法
  11. javascript class
  12. 【机器学习】从房价预测问题看回归算法
  13. ORACLE监听器TNS服务不能启动的问题解决(转自:http://www.cnweblog.com/sunGIS/archive/2006/08/21/124117.html)...
  14. MySQL 添加列 修改列 删除列
  15. 论文阅读:Reasoning about Object Affordances in a Knowledge Base Representation
  16. 解决台式机前耳机插孔没有声音
  17. 置换流水车间调度问题的matlab求解,置换流水车间调度问题的几种智能算法
  18. [法国][无法触碰/触不可及][BD-RMVB.720p.中字][2011最新/法国票房冠军]
  19. 二层、三层、四层交换机、路由器的区别
  20. 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态

热门文章

  1. MyBatis工作流程及配置
  2. PHPSTORM 中文版/汉化 即常用快捷键和配置
  3. 手机等第三方终端访问 WebStorm 页面
  4. 后台json返回给ajax,Ajax 如何 得到后台返回 的json数据,正确的格式应该如何去写?...
  5. 第490篇--Accessing the Domain info is denied in IIS.
  6. python三级菜单的实现
  7. Swift给每个开发者赢取500万的机会!不看一生后悔。
  8. 软件设计是怎样炼成的(3)——软件系统不是木桶型的
  9. 代码量统计小工具V1.0
  10. VC++动态链接库编程之MFC规则DLL