1、简单使用写日志到文本,设置格式
import logging
logging.basicConfig(
filename = 'log.log',
format = '%(asctime)s\tFile \"%(filename)s\",line %(lineno)s\t%(levelname)s: %(message)s',
level = logging.INFO
)
logging.info("info_message")
2、添加设置日志保留数量,切片方式
import logging
import time
import re
from logging.handlers import TimedRotatingFileHandler
from logging.handlers import RotatingFileHandler
def backroll():
logFormat = '%(asctime)s\tFile \"%(filename)s\",line %(lineno)s\t%(levelname)s: %(message)s'
formatter = logging.Formatter(logFormat)
log_file_handler = TimedRotatingFileHandler(filename="./file/log.txt", when="S", interval=10, backupCount=3)
log_file_handler.setFormatter(formatter)
logging.basicConfig(format =logFormat, level=logging.INFO)
log = logging.getLogger()
log.addHandler(log_file_handler)
log_content = "test log2"
count = 0
while count < 40:
log.error(log_content)
time.sleep(5)
count = count + 1
log.removeHandler(log_file_handler)
if __name__ == "__main__":
backroll()
"""
记录log日志工厂函数
"""
import logging
import logging.handlers
class LogFactory(object):
def __init__(self, filename):
self.filename = filename
self.log = logging.getLogger(self.filename)
self.log.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(self.filename, maxBytes=100 * 1024 * 1024, backupCount=1000)
formatter = logging.Formatter(
'%(asctime)s %(levelname)s: %(threadName)s [%(module)s.%(funcName)s, Line:%(lineno)d] %(message)s')
handler.setFormatter(formatter)
self.log.addHandler(handler)
def msg(self, msg):
self.log.info(msg)
def emsg(self, msg):
self.log.error(msg)
if __name__ == '__main__':
log = LogFactory("log.log")
try:
log.msg("Begin to load articles and topics...")
log.emsg('HHHHHHHHHHH')
except Exception as e:
log.msg("Load catch error:%s" % e)