文档章节

Scrapy自定义日志和系统日志按级别输出到不同文件

字节码间
 字节码间
发布于 2017/03/08 19:38
字数 236
阅读 558
收藏 0

当时搞了好久,代码就下面几行,太懒了直接贴吧:

import time, os, logging

# get my_logger
def get_logger(domain, start_time = time.strftime('%Y%m%d%H%M%S', time.localtime())):
    start_time = start_time[:12]
    path = '/home/scrapy/scrapy_spider_logs/'
    if not os.path.exists(path):
        os.makedirs(path)
    path_log = path + start_time

    my_logger = logging.getLogger(domain)
    my_logger.setLevel(logging.INFO)
    formatter = logging.Formatter('%(asctime)s %(levelname)s %(filename)s[line:%(lineno)d] %(message)s')

    scrapy_logger = logging.getLogger('scrapy')
    #scrapy_logger = logging.getLogger()
    scrapy_logger.setLevel(logging.WARNING)

    handler_info = logging.FileHandler('%s_info.log' % path_log, 'a', encoding='UTF-8')
    handler_info.setLevel(logging.INFO)
    handler_info.setFormatter(formatter)
    my_logger.addHandler(handler_info)
    scrapy_logger.addHandler(handler_info)

    handler_warning = logging.FileHandler('%s_warning.log' % path_log, 'a', encoding='UTF-8')
    handler_warning.setLevel(logging.WARNING)
    handler_warning.setFormatter(formatter)
    my_logger.addHandler(handler_warning)
    scrapy_logger.addHandler(handler_warning)

    handler_error = logging.FileHandler('%s_error.log' % path_log, 'a', encoding='UTF-8')
    handler_error.setLevel(logging.ERROR)
    handler_error.setFormatter(formatter)
    my_logger.addHandler(handler_error)
    scrapy_logger.addHandler(handler_error)

    my_logger.info('Get my_logger success !!!')

    return my_logger

使用时如下:

my_logger = get_logger(spider_name,start_time=start_time)
my_logger.info('Info logger')

my_logger.warning('Warning logger')

my_logger.error('Error logger')

对应级别的日志会输出到一时间戳命名的文件中。

© 著作权归作者所有

字节码间
粉丝 1
博文 18
码字总数 5902
作品 0
西安
私信 提问
SpringBoot | 第四章 :日志管理

原文出处:翟永超 Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置使用...

翟永超
2018/08/01
0
0
Spring Boot学习笔记—日志

开发应用时,日志框架的依赖是不可避免的。应用依赖的其他框架中,可能又依赖了其他不同的框架,例如你的应用使用的Logback,但Spring系列框架使用的Log4j,还有某某框架依赖的Commons Loggi...

chace0120
2015/12/23
3.6K
0
armink/EasyLogger

EasyLogger 1. 介绍 EasyLogger 是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,例如: IoT 产品、可穿戴设备、智能家居等等。相比 log4c、zlo...

armink
2015/08/01
0
0
日志配置,日志收集,日志切割

linux系统中日志分析 是很重要的一部分,下面介绍一下简单的日志自定义配置和日志收集 1 日志配置 配置文件在/etc/rsyslog.conf中 日志分为日志类型,日志级别。 日志类型: mail 邮件类型 ...

wzl_up
2016/09/27
292
0
超轻量级、高性能 C/C++ 日志库--EasyLogger

1、介绍 EasyLogger 是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的C日志库,非常适合对资源敏感的软件项目,例如:IoT产品、可穿戴设备、智能家居等等。相比log4c、zlog这些知名的C日志库,...

armink
2015/08/18
6.3K
2

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
昨天
64
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
昨天
26
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
昨天
44
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
昨天
27
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
昨天
44
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部