Ejemplo n.º 1
0
def config_log():
    fmt = Formatter(fmt='%(asctime)s %(name)s %(levelname)s: %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S')

    io_handler = StreamHandler()
    io_handler.setLevel(logging.DEBUG)
    io_handler.setFormatter(fmt)

    file_handler = FileHandler('edu_logs.log')
    file_handler.setLevel(logging.WARN)
    file_handler.setFormatter(fmt)

    http_handler = HTTPHandler(host='localhost:5000',
                               url='/log',
                               method='POST')
    http_handler.setLevel(logging.ERROR)
    http_handler.setFormatter(fmt)  # 上传的数据不需要formatter

    logger.setLevel(logging.DEBUG)
    logger.addHandler(io_handler)
    logger.addHandler(file_handler)
    logger.addHandler(http_handler)
Ejemplo n.º 2
0
Archivo: tests.py Proyecto: Lizrong/CM
    def test_log(self):
        logger = logging.getLogger()

        fileHandler = TimedRotatingFileHandler('logs/content.log')
        fileHandler.setLevel(
            logging.INFO
        )  # NOTSET -> DEBUG -> INFO -> WARNING -> ERROR -> FATAL

        formatter = Formatter('%(asctime)s  %(levelname)s: %(message)s',
                              datefmt='%Y-%m-%d %H:%M:%S')

        fileHandler.setFormatter(formatter)

        iohandler = StreamHandler()
        iohandler.setLevel(logging.DEBUG)

        logger.addHandler(fileHandler)
        logger.addHandler(iohandler)

        # 将日志上传到日志服务器
        # host 服务器的ip和port
        # url  请求路径,以 / 开始
        # method 默认 为GET
        httpHandler = HTTPHandler(host='127.0.0.1:5000',
                                  url='/upload_log',
                                  method='POST')

        httpHandler.setFormatter(formatter)

        # 只有error 的信息才会上传到日志服务器
        httpHandler.setLevel(logging.ERROR)
        logger.addHandler(httpHandler)

        logger.setLevel(logging.DEBUG)

        logger.info('this is a test log python file!')
        logger.error('this is error msg for python file!')
        logger.debug('this is dubug msg !')  # this msg is hiddern!
Ejemplo n.º 3
0

class MongoHandler(logging.Handler):
    def emit(self, record):
        pass


logger = logging.getLogger()
fh = logging.FileHandler('logger.log')  # 文件输出流的对象
ch = logging.StreamHandler()  # 标准输出流,用于输出到控制台
nw = HTTPHandler('localhost:8888', url='/')  # 默认以GET方式输出到网页上
formatter = logging.Formatter(
    fmt='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
    datefmt='%Y%m%d %H:%M:%S')

logger.setLevel('DEBUG')

fh.setFormatter(formatter)
ch.setFormatter(formatter)
nw.setFormatter(formatter)

logger.addHandler(fh)  # 输出到文件
logger.addHandler(ch)  # 输出到屏幕
logger.addHandler(nw)  # GET带参数输出

logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
Ejemplo n.º 4
0
# 创建上传日志请求的处理器HTTPHandler
# 上传日志的接口: http://10.35.162.97:5000/log/
# 接口的方法: post
# 响应的数据是json
handler4 = HTTPHandler(host='10.35.162.97:5000',
                       url='/log/', method='POST')
handler4.setLevel(logging.INFO)


# 创建格式化对象 , 并添加到处理器
formatter = logging.Formatter('[ <%(asctime)s> %(name)s %(levelname)s ] %(message)s')
handler1.setFormatter(formatter)
handler2.setFormatter(formatter)
handler3.setFormatter(formatter)
handler4.setFormatter(formatter)  # 无效的,默认情况下将所有的日志信息上传到服务器

# 将处理器添加到日志记录器
logger.addHandler(handler1)
logger.addHandler(handler2)
# logger.addHandler(handler3)
logger.addHandler(handler4)

# 任务4: 使用SMTPHandler将记录的日志信息发送到邮箱中

if __name__ == '__main__':
    logger.info('hi, disen')
    logger.debug('hi, 190')
    logger.warning('hi, 110')
    logger.error('hi, 120')
    logger.critical('出现了192的数据库无法连接')