ydf0509 / nb_log

pip install nb_log 各种日志handler和自动转化项目的任意print的效果。日志自动彩色炫酷,可点击控制台的日志自动精确跳转到pycharm的文件和行号。文件日志多进程切割安全。在10个最重要方面全方位超过loguru
389 stars 73 forks source link

ConcurrentDayRotatingFileHandler #55

Closed GoldCity5 closed 1 year ago

ydf0509 commented 1 year ago

代码和操作系统类型(win / linux)发下才知道

GoldCity5 commented 1 year ago

` from flask import Flask import nb_log

log_path = "/logs" log_filename = "test.log" logger = nb_log.LogManager("root").get_logger_and_add_handlers(1, log_path=log_path, log_filename=log_filename, log_file_handler_type=2)

app = Flask(name)

@app.route('/hello-world') def hello_world(): logger.info("hello world") return 'Hello, World!'

logger.info("start") logger.info(logger.handlers)

if name == 'main': app.run(host="0.0.0.0", port=3077, debug=False)`

macOS 系统

ydf0509 commented 1 year ago

image lograte 了解下。

GoldCity5 commented 1 year ago

我需要按天切割日志,ConcurrentDayRotatingFileHandler这个看起来更符合需求呢

ydf0509 commented 1 year ago

安装外部工具,lograte灵活,可以按天 按大小

ydf0509 commented 1 year ago

你falsk直接运行的, 还是uwsgi部署

GoldCity5 commented 1 year ago

本地是直接运行,生产环境是gunicorn+flask

ydf0509 commented 1 year ago

我这个代码,在 linux环境 + nb_log8.1 是会写入到文件的。

from nb_log import get_logger

logger = get_logger('mylog',log_filename='mylog4c.log',log_file_handler_type=2)

for i in range(10):
    logger.error(f'testss {i}')
GoldCity5 commented 1 year ago

好像不行,你这个是程序结束了才会写入,在程序运行期间 看不到日志

`import time

from nb_log import get_logger

log_path = "/Users/kongweilong/mindverse/project/log_configer/logs" log_filename = "test.log"

logger = get_logger('mylog', log_path=log_path, log_filename=log_filename, log_file_handler_type=2)

for i in range(10): logger.error(f'testss {i}')

logger.error("ok")

time.sleep(100)`

ydf0509 commented 1 year ago

image 1043行的测试时候注释了,要放开。

ydf0509 commented 1 year ago

1043行的flush放开。 为了性能,归根结底在生产环境最好用 lograte + watchedfilehandler。学习下lograte,不要用python的确保多进程安全的按天切割了。

GoldCity5 commented 1 year ago

好的,感谢🙏,这里的flush是原本设计如此吗,还是说是bug,可以放开呢

ydf0509 commented 1 year ago

先安装8.4,但最好用lograte,lograte的各种切割备份自定义真的很强大

GoldCity5 commented 1 year ago

好的,我得学一下