Closed GoldCity5 closed 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 系统
lograte 了解下。
我需要按天切割日志,ConcurrentDayRotatingFileHandler这个看起来更符合需求呢
安装外部工具,lograte灵活,可以按天 按大小
你falsk直接运行的, 还是uwsgi部署
本地是直接运行,生产环境是gunicorn+flask
我这个代码,在 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}')
好像不行,你这个是程序结束了才会写入,在程序运行期间 看不到日志
`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)`
1043行的测试时候注释了,要放开。
1043行的flush放开。 为了性能,归根结底在生产环境最好用 lograte + watchedfilehandler。学习下lograte,不要用python的确保多进程安全的按天切割了。
好的,感谢🙏,这里的flush是原本设计如此吗,还是说是bug,可以放开呢
先安装8.4,但最好用lograte,lograte的各种切割备份自定义真的很强大
好的,我得学一下
代码和操作系统类型(win / linux)发下才知道