python logging 输出到文件_python 日志输出到终端与文件配置

最近一段时间由于工作原因,用了一段时间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即可。

下面是程序运行结果。

aa2a485217b49d8a4d185a921a91f4a6.png

1fe2a6b137b67787b91420a5de4f6860.png

下面是程序目录结构图:

ecd216a0567757719074cf9007a77fa2.png

060430d8482b99d135ed40936faa1793.png

如果大家觉得还阔以,可以关注我的公众号,欢迎大家一起交流。

cf405bfe0bcc47063cabe9b020ba8039.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值