Python 程序的运行过程日志,是否有轮子可以实现 C/S 或者 B/S 放出来? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
uti6770werty
V2EX    Python

Python 程序的运行过程日志,是否有轮子可以实现 C/S 或者 B/S 放出来?

  •  
  •   uti6770werty 2022-09-27 10:37:26 +08:00 3843 次点击
    这是一个创建于 1115 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家里 homelab 的虚拟机上跑着 win ,目前是 cmd console 运行着 while true 炼丹,
    日志和状态观看,全靠 rdp 远程桌面过去看,
    日志的显示,全靠 logging 或者 print 输出到 console ,

    请教一下大家,
    有没有多种方法组合成方案实现,或者现成轮子可以把这些日志, C/S ,B/S 放出来远程浏览?
    只看最近的 500 条就可以了,
    看的人,只有我一个。

    28 条回复    2022-09-27 19:38:12 +08:00
    julyclyde
        1
    julyclyde  
       2022-09-27 10:44:55 +08:00
    试试标准库 logging 里边的 syslog handler
    xiao109
        2
    xiao109  
       2022-09-27 10:49:35 +08:00   4
    给他来一套 ELK
    zhuweiyou
        3
    zhuweiyou  
       2022-09-27 10:51:52 +08:00
    pm2 monitor

    web 界面可以看内存 CPU LOG 啥的...
    Kinnice
        4
    Kinnice  
       2022-09-27 10:53:12 +08:00   1
    only python 即可
    1. 把你的日志输出到一个 log 文件
    2. 开一个 python 读这个 log ,每 X 行或 X 分钟,自动把新增内容推到钉钉机器人 /其他 push 服务。
    sujin190
        5
    sujin190  
       2022-09-27 10:55:38 +08:00
    搞个 jenkins 之类的 job 管理器呗,然后把你这个炼丹啥的放到里边去运行就好了吧,运行状态和日志都可以看了
    Vegetable
        6
    Vegetable  
       2022-09-27 11:03:28 +08:00
    supervisor 完美实现你的需求,捕获标准输出、远程控制台 tail log ,尴尬的是这玩意只支持 Unix 系统
    sidegem
        7
    sidegem  
       2022-09-27 11:05:14 +08:00
    直接把日志文件用 nginx 转发出来看
    liuxingdeyu
        8
    liuxingdeyu  
       2022-09-27 11:07:38 +08:00   1
    loguru 加一个 handler ,handler 里面往丁丁飞书推就 OK 了
    ipwx
        9
    ipwx  
       2022-09-27 11:07:52 +08:00
    说起炼丹我就不困了。你需要的是 jupyter notebook

    https://jupyter.org/
    aikdong
        10
    aikdong  
       2022-09-27 11:14:13 +08:00
    有个 tailon 工具可以试试
    caqiko
        11
    caqiko  
       2022-09-27 11:34:17 +08:00
    Vegetable
        12
    Vegetable  
       2022-09-27 11:37:21 +08:00   1
    @ipwx 裸奔的 jupyter notebook 非常危险,这个要提醒一下...
    zhoujinjing09
        13
    zhoujinjing09  
       2022-09-27 11:57:34 +08:00
    logging 本身就有 httphandler
    starrys
        14
    starrys  
       2022-09-27 12:08:03 +08:00
    两步搞定

    1. 日志输出到文件

    写一个批处理,示例:

    @echo off
    title CoreDNS
    coredns 1>> log.log 2>&1

    2. 将日志文件同步到本机

    可以使用 Syncthing
    vopin
        15
    vopin  
       2022-09-27 12:13:04 +08:00 via iPhone
    单纯炼丹有很多 monitor 工具吧,我喜欢 wandb
    subjadeites
        16
    subjadeites  
       2022-09-27 12:14:01 +08:00 via Android
    flask 写几十行代码启个 web 服务就行。。。写个方法读文件最后几百行
    ipwx
        17
    ipwx  
       2022-09-27 13:16:00 +08:00
    @Vegetable 噗你公网暴露?这不是一个 vpn 解决内网访问码
    killva4624
        18
    killva4624  
       2022-09-27 13:17:59 +08:00
    Loki
    qzwmjv
        19
    qzwmjv  
       2022-09-27 13:18:43 +08:00
    为啥考虑换个 linux 炼丹,反正虚拟机
    Vegetable
        20
    Vegetable  
       2022-09-27 14:16:40 +08:00
    @ipwx 之前一个搞算法的同事就不太懂这个,部署 FATE 结果没处理 FATE 自带的 jupyter notebook ,公司服务器被人挖了一个礼拜矿
    ipwx
        21
    ipwx  
       2022-09-27 14:27:42 +08:00
    @Vegetable 我觉得你司没有一个统一的 VPN 入口就有点问题。。。
    ipwx
        22
    ipwx  
       2022-09-27 14:29:13 +08:00
    @Vegetable 首先网络安全大部分东西就不该是算法工程师考虑的问题。算法工程师就该考虑什么工具做实验最快。显然 Jupyter Notebook 最快。

    VPN 接入应该是提供远程访问的公司最基础的设施。如果没有,那就应该全面禁止远程访问。我不能理解,随便谁都能暴露一个随便什么服务给公网的这种操作。。。
    lmshl
        23
    lmshl  
       2022-09-27 15:16:57 +08:00
    以前用过一个远程日志服务,叫 https://www.papertrail.com/ ,日质量不大的时候可以托管着用。
    如果量大的话就应该考虑 ELK 那种托管日志方案了,比如丢给七牛日志平台或者阿里云
    SenLief
        24
    SenLief  
       2022-09-27 16:17:42 +08:00 via iPhone
    不放在浏览器,而是用 email 发给自己如何?

    你是自己看的日志,应该用 email 发给自己看应该可以,notifiers 库。
    mijazz
        25
    mijazz  
       2022-09-27 16:51:36 +08:00
    [logging handler - Python]( https://docs.python.org/3/library/logging.handlers.html)

    Python 的 `logging` 有`HTTPHandler` 或者 `SMTPHandler`

    按需求自己补上点缝到项目里就差不多了
    vZexc0m
        26
    vZexc0m  
       2022-09-27 17:15:37 +08:00
    建议上一套 EFK
    xuelu520
        27
    xuelu520  
       2022-09-27 17:50:15 +08:00
    日志写文件,然后套 ELK 或 EFK 呗。都是有现成的东西,轮子都不用写
    tfdetang
        28
    tfdetang  
       2022-09-27 19:38:12 +08:00
    其实你需要的不是 看日志,需要的是记录 ML 过程? 那难道不可以 tensorboard 吗?
    或者我个人更推荐 MLflow ,基本不需要侵入太多代码,就可以把所有炼丹的过程与结果放到一个集中的平台去管理;
    除了可以远程看日志,还顺带把模型版本什么的都管理起来了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4523 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 01:04 PVG 09:04 LAX 18:04 JFK 21:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86