int*_*_ua 3 python compression logging python-3.x
我找不到压缩我用logger模块编写的日志的方法。
例如:
import logging
import gzip
logger = logging.getLogger('')
z_file = gzip.open('out.log.gz', mode='wb')
logger.addHandler(logging.StreamHandler(z_file))
logger.warning("test".encode("UTF-8"))
Run Code Online (Sandbox Code Playgroud)
双方codecs.open并gzip.open给我
--- Logging error ---
Traceback (most recent call last):
File "/usr/lib/python3.4/logging/__init__.py", line 966, in emit
stream.write(msg)
File "/usr/lib/python3.4/gzip.py", line 343, in write
self.crc = zlib.crc32(data, self.crc) & 0xffffffff
TypeError: 'str' does not support the buffer interface
Run Code Online (Sandbox Code Playgroud)
当我尝试使用他们的处理程序时。我究竟做错了什么?
不包含logger模块的相关问题:Writing append only gzipped log files in Python
指定encoding为gzip.open。您应该使用显式文本模式 ( wt) 来指定编码。只需将字符串传递给日志记录方法。
import logging
import gzip
logger = logging.getLogger('')
z_file = gzip.open('out.log.gz', mode='wt', encoding='utf-8')
logger.addHandler(logging.StreamHandler(z_file))
logger.warning("test")
Run Code Online (Sandbox Code Playgroud)