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 · 3435 次点击
    这是一个创建于 807 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家里 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   ·   实用小工具   ·   1654 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:33 · PVG 00:33 · LAX 08:33 · JFK 11:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.