Python中常用的模块--Log日志模块

实例代码:

#!/usr/bin/python
# -*- coding:utf-8 -*-

import os
import datetime
import sys
import logging
from logging import StreamHandler



class myLog():
    def __init__(self,basedir=None,name=None):
        # 获取当前目录
        if basedir:
            self.basedir = basedir
        else:
            self.basedir = os.path.split(os.path.realpath(__file__))[0]
            """
            windows:
            D:\Python Work Location\Kill_Job_Project\loggers.py
            D:\Python Work Location\Kill_Job_Project

            linux:
            /home/dd_edw_test/test.py
            ('/home/dd_edw_test', 'test.py')
            /home/dd_edw_test
            """
        if not self.basedir.endswith("/"):
            # linux目录最后要加/
            self.basedir += "/"

        #创建日志目录
        self.log_dir = self.basedir+"log/"
        if not os.path.exists(self.log_dir):
            os.makedirs(self.log_dir)

        #获取当前文件的名字,去掉后缀
        if name:
            self.name = name
        else:
            self.name = os.path.splitext(os.path.split(os.path.realpath(__file__))[1])[0]

        #获取当前日期
        self.today = datetime.date.today()
        self.today = str(self.today).replace("-", "")

        #创建日志文件
        self.logName = "%s%s_%s.txt"%(self.log_dir,self.name,self.today)

        #先删除日志文件,注意:只会删除文件
        try:
            os.remove(self.logName)
        except Exception as e:
            print('删除出现异常,错误信息:')
            print(e)
        else:
            print('删除成功')

        #调用自己的loger方法
        self.loger()

    # 设置相应的日志格式
    def loger(self):
        self.logger = logging.getLogger(self.name)
        self.logger.setLevel(logging.DEBUG)
        print('-----------------------')
        print(self.logger)
        print(self.logger.level)
        format = logging.Formatter("%(asctime)s %(levelname)s: %(message)s")
        print(format)
        myStreamHandler = logging.StreamHandler()
        print(myStreamHandler)
        myStreamHandler.setFormatter(format)
        print(myStreamHandler)

        myFileHandler = logging.FileHandler(self.logName)
        print(myFileHandler)
        myFileHandler.setFormatter(format)
        self.logger.addHandler(myFileHandler)
        self.logger.addHandler(myStreamHandler)
        print(self.logger)
        """
        <logging.Logger object at 0x0000000001F39AC8>
        10
        <logging.Formatter object at 0x00000000021E8E80>
        <logging.StreamHandler object at 0x00000000026D9940>
        <logging.StreamHandler object at 0x00000000026BA908>
        <logging.FileHandler object at 0x00000000026EA860>


        <logging.Logger object at 0x0000000002638E48>
        """

    def info(self,text):
        return self.logger.info(text)

    def debug(self,text):
        return self.logger.debug(text)

    def warning(self,text):
        return self.logger.warning(text)

    def error(self,text):
        return self.logger.error(text)



if __name__ == '__main__':
    mylog = myLog()
    print(mylog.basedir)
    print(mylog.log_dir)
    print(mylog.name)
    print(mylog.today)
    print(mylog.logName)

    """
    /home/dd_edw/zhang_dd_edw/
    /home/dd_edw/zhang_dd_edw/log/
    loggers
    2017-10-09
    D:\Python Work Location\Kill_Job_Project/log/loggers_20171009.txt
    """
    mylog.info("nihhao")
    mylog.debug('呵呵')
    mylog.warning('注意身体')
    mylog.error('fuck')

    """
    2017-10-09 18:53:42,467 INFO: nihhao
    2017-10-09 18:53:42,468 DEBUG: 呵呵
    2017-10-09 18:53:42,468 WARNING: 注意身体
    2017-10-09 18:53:42,468 ERROR: fuck
    """

日志结果示例:

2017-10-09 18:58:18,948 INFO: nihhao
2017-10-09 18:58:18,948 DEBUG: 呵呵
2017-10-09 18:58:18,948 WARNING: 注意身体
2017-10-09 18:58:18,949 ERROR: fuck
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只懒得睁眼的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值