代码之家  ›  专栏  ›  技术社区  ›  CastleDweller

如何在Mac OS X中记录python程序活动

  •  13
  • CastleDweller  · 技术社区  · 16 年前

    我对Python编程相当陌生,因此我有一个问题:

    如何使用Mac OS X将Python应用程序活动记录到/var/log中?

    我怎么做?

    更新:

    import logging
    import time
    LOG_FILENAME = "/var/log/writeup.log" + time.strftime("%Y-%m-%d")
    LOG_FORMAT = "%(asctime)s - %(filename)s - %(levelname)s - %(message)s"
    log = logging.getLogger("main.py")
    log.setLevel(logging.DEBUG)
    ch = logging.FileHandler(LOG_FILENAME)
    ch.setLevel(logging.DEBUG)
    format = logging.Formatter(LOG_FORMAT)
    ch.setFormatter(format)
    log.addHandler(ch)
    
    4 回复  |  直到 16 年前
        1
  •  27
  •   CastleDweller    16 年前

    我找到了解决办法。Mac OS X似乎没有记录任何低于log_ALERT的日志活动,所以这就实现了

    import syslog
    # Define identifier
    syslog.openlog("Python")
    # Record a message
    syslog.syslog(syslog.LOG_ALERT, "Example message")
    

    此消息记录在/var/log/system.log上

        2
  •  1
  •   Arlukin    15 年前

        3
  •  1
  •   Gene Bo Krzysztof Dziuba    12 年前

    下面是一个指南,其中包含了您需要完成的大约5个步骤-它们非常简单,对我来说非常有效:

    http://vastdevblog.vast.com/blog/2012/04/18/using-syslogappender-on-os-x/

    sudo /usr/libexec/PlistBuddy /System/Library/LaunchDaemons/com.apple.syslogd.plist
    
    ...
    
    Command: Add :Sockets:NetworkListener dict
    Command: Add :Sockets:NetworkListener:SockServiceName string "syslog"
    Command: Add :Sockets:NetworkListener:SockType string "dgram"
    
        4
  •  -2
  •   Kimvais    16 年前

    问题是您运行脚本的帐户没有写入权限 /var/log

    我不知道OSX的细节,但我想 syslog.syslog("message") Feb 11 14:27:47 hostname python: message /var/log/messages