python-设置log

#-*- coding: UTF-8 -*-
__author__ = ‘007‘
__date__ = ‘2016/6/16‘

import logging
import ctypes

#STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE= -11
#STD_ERROR_HANDLE = -12

FOREGROUND_WHITE = 0x0007
FOREGROUND_BLUE = 0x01 # text color contains blue.
FOREGROUND_GREEN= 0x02 # text color contains green.
FOREGROUND_RED  = 0x04 # text color contains red.
FOREGROUND_INTENSITY = 0x08 # text color is intensified.
FOREGROUND_YELLOW = FOREGROUND_RED | FOREGROUND_GREEN

BACKGROUND_BLUE = 0x10 # background color contains blue.
BACKGROUND_GREEN= 0x20 # background color contains green.
BACKGROUND_RED  = 0x40 # background color contains red.
BACKGROUND_INTENSITY = 0x80 # background color is intensified.

std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
def set_color(color,handle = std_out_handle):
    bb = ctypes.windll.kernel32.SetConsoleTextAttribute(handle,color)
    return bb

class logger:
    def __init__(self,name,path,clevel=logging.DEBUG,flevel=logging.DEBUG):
        self.logger = logging.getLogger(name)
        self.logger.setLevel(logging.DEBUG)

        fmt = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)

        ch = logging.StreamHandler()
        ch.setFormatter(fmt)
        ch.setLevel(clevel)

        fh = logging.FileHandler(path)
        fh.setFormatter(fmt)
        fh.setLevel(flevel)

        self.logger.addHandler(ch)
        self.logger.addHandler(fh)

    def debug(self,message):
        self.logger.debug(message)

    def info(self,message,color=FOREGROUND_GREEN):
        set_color(color)
        self.logger.info(message)
        set_color(FOREGROUND_WHITE)

    def warn(self,message,color=FOREGROUND_YELLOW):
        set_color(color)
        self.logger.warn(message)
        set_color(FOREGROUND_WHITE)

    def error(self,message,color=FOREGROUND_RED):
        set_color(color)
        self.logger.error(message)
        set_color(FOREGROUND_WHITE)

    def critical(self,message,color=FOREGROUND_BLUE):
        set_color(color)
        self.logger.critical(message)
        set_color(FOREGROUND_WHITE)

if __name__ == "__main__":
    logger1 = logger(‘one‘,‘test.log‘,logging.DEBUG,logging.DEBUG)
    logger1.debug("logger1 debug message")
    logger1.info("logger1 info message")
    logger1.warn("logger1 warn message")
    logger1.error("logger1 error message")
    logger1.critical("logger1 critical message")

    logger2 = logger(‘two‘,‘test.log‘,logging.INFO,logging.INFO)
    logger2.debug("logger2 debug message")
    logger2.info("logger2 info message")
    logger2.warn("logger2 warn message")
    logger2.error("logger2 error message")
    logger2.critical("logger2 critical message")

    logger3 = logger(‘three‘,"test.log",logging.WARNING)
    logger3.debug("logger3 debug message")
    logger3.info("logger3 info message")
    logger3.warn("logger3 warn message")
    logger3.error("logger3 error message")
    logger3.critical("logger3 critical message")

    logger4 = logger(‘four‘,"test.log",logging.ERROR,logging.ERROR)
    logger4.debug("logger4 debug message")
    logger4.info("logger4 info message")
    logger4.warn("logger4 warn message")
    logger4.error("logger4 error message")
    logger4.critical("logger4 critical message")

    logger5 = logger(‘five‘,"test.log",logging.CRITICAL,logging.CRITICAL)
    logger5.debug("logger5 debug message")
    logger5.info("logger5 info message")
    logger5.warn("logger5 warn message")
    logger5.error("logger5 error message")
    logger5.critical("logger5 critical message")

  

时间: 2024-11-18 20:04:40

python-设置log的相关文章

python设置检查点简单实现

说检查点,其实就是对过去历史的记录,可以认为是log.不过这里进行了简化.举例来说,我现在又一段文本.文本里放有一堆堆的链接地址.我现在的任务是下载那些地址中的内容.另外因为网络的问题或者网站的问题,每次下载可能不会非常的成功.有可能出现断链或者socket异常错误.不过不管产生什么样的错误,我都希望我的程序能够一直跑下去.或者能停掉后,继续从为下载的链接处跑.而不是从开始的地方跑.这个问题非常简单.因为这些链接是上下文无关的(上下文有关的情况要另外分析).所以我只要记录程序运行停止前的最后一条

利用python 提取log 文件中的关键句子,并进行统计分析

利用python开发了一个提取sim.log 中的各个关键步骤中的时间并进行统计的程序: #!/usr/bin/python2.6 import re,datetime file_name='/home/alzhong/logs/qtat1/R2860.01.13/sim-applycommitrollback-bld1.log' file=open(file_name,'r') acnum=[];time_res=[];lnum=0 def trans_time(time): t1=datet

Python设置Headers

Python设置Headers import urllib import urllib2 url = 'http://www.server.com/login' user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' values = {'username' : 'cqc', 'password' : 'XXXX' } headers = { 'User-Agent' : user_agent } data = urllib.u

python设置常量参数

python设置常量参数 by 伍雪颖 const.py: class _const: class ConstError(TypeError) :pass class ConstCaseError(ConstError) :pass def __setattr__(self,name,value): if self.__dict__.has_key(name): raise self.ConstError,"Can't change const.%s" % name ifnot nam

Python Django log日志

log日志 log开发日志 一.创建项目 1.python -m venv ll_env # 创建虚拟环境 2.source ll_env/bin/activate # 激活虚拟环境 3.pip install django # 安装django 4.django-admin.py startproject project . # 创建项目 5.python manage.py migrate # 创建数据库 6.python manage.py runserver # 测试项目 二.创建应用程

python 设置linux环境变量

在linux上设置临时环境变量: export PGPASSWORD = 'postgres' 若用python实现,错误的方法: os.system("export PGPASSWORD='postgres'") 正确的方法: os.environ['PGPASSWORD'] = 'postgres' 版权声明:本文为博主原创文章,未经博主允许不得转载.

Python之log的处理方式

配置文件: 1 #! /usr/bin/env python 2 # -*- coding: utf-8 -*- 3 """ 4 logging配置 5 """ 6 7 import os 8 import logging.config 9 10 # 定义三种日志输出格式 开始 11 12 standard_format = '[%(asctime) -s][%(threadName)s:%(thread)d][task_id:%(name)s]

利用python 提取log 文件里的关键句子,并进行统计分析

利用python开发了一个提取sim.log 中的各个关键步骤中的时间并进行统计的程序: #!/usr/bin/python2.6 import re,datetime file_name='/home/alzhong/logs/qtat1/R2860.01.13/sim-applycommitrollback-bld1.log' file=open(file_name,'r') acnum=[];time_res=[];lnum=0 def trans_time(time): t1=datet

python实时处理log文件脚本

这个Python脚本是用来对实时文件的内容监控,比如 Error 或者 time out 字段都可以进行自定义:算是我的第一个真正的Python脚本,自己感觉还是比较臃肿,不过打算放到blog上记录一下(还是初学者,大神们勿喷哈),真心希望博友们能够再指点一下(现在记录每次的文件大小值是输出到了一个文件中,并且里面还嵌套了有shell命令,这些我认为都是可以优化掉的吧,只是现在我还不知道怎么做):告警是基于zabbix,自定义的模板是120s执行一次 #!/usr/local/bin/pytho

Python 设置系统默认编码

有2种方法设置python的默认编码: 一个解决的方案在程序中加入以下代码: import sys   reload(sys)   sys.setdefaultencoding('utf8') 另一个方案是在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为: # encoding=utf8   import sys      reload(sys)   sys.setdefaultencoding('utf8')