社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Poolka

Poolka 最近创建的主题
Poolka 最近回复了
6 年前
回复了 Poolka 创建的主题 » 如何使用python中的日志模块生成两个日志文件?

当你使用 logging 实际上,您使用的是在 import logging . 您可以将它与多个处理程序一起使用。例如:

# 1. logging to file
filename = (
    'log_file{}.log'
    .format(
        dt.datetime.today().strftime("_date_%Y-%m-%d_time_%H-%M-%S")))
# path to log folder.
path = os.path.join(os.getcwd(), 'logs')
# create log folder if it does not exist.
if not os.path.isdir(path):
    os.makedirs(path, exist_ok=True)
to_file = logging.FileHandler(os.path.join(path, filename))
to_file.addFilter(lambda x: x.levelno in [20, 40])

# 2. logging to console
to_console = logging.StreamHandler()
to_console.addFilter(lambda x: x.levelno in [20, 21, 40])

# 3. root logger configuration
logging.basicConfig(
    level=10,
    datefmt='%Y-%m-%d %H:%M:%S',
    format='[%(asctime)s]:%(threadName)s:%(levelname)s:%(message)s',
    handlers=[to_console, to_file])

如果要登录到2个文件,则只需创建2个处理程序 logging.FileHandler(...) ,注册它们,并像往常一样使用新配置的根记录器:

logging.info('Some info')

另一个选择是创建两个记录器。如果要分离多个日志消息源,通常需要这样做。

要避免无限循环,请添加 x += 1 在你的while循环的最后。因此,您的代码工作正常,但在一般情况下工作错误。

它工作错误的原因是您只使用一个变量 g 存储结果。使用至少两个变量比较以前找到的子字符串和新找到的子字符串,或使用list记住所有子字符串,然后选择最长的子字符串。