首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python的日志库中捕获OS用户的用户名?

如何在python的日志库中捕获OS用户的用户名?
EN

Stack Overflow用户
提问于 2016-04-17 09:38:07
回答 1查看 2.8K关注 0票数 3

我正在使用python-watchdog来监视某些更改的路径,如添加、删除、修改等。随着时间和消息的信息,我希望捕获进行更改的用户的用户名。我正在查看getpass,我四处寻找日志本身中的一个变量,但是找不到任何东西。

有什么线索吗?我的看门狗代码在下面

代码语言:javascript
复制
print 'starting the watcher mate...'
create_log_file()
logging.basicConfig(filename = log_file, level = logging.INFO, format = '%(asctime)s - %(message)s', datefmt = '%Y-%m-%d %H:%M:%S')
path = sys.argv[1] if len(sys.argv) > 1 else '/etc/nginx/'
event_handler = LoggingEventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
EN

回答 1

Stack Overflow用户

发布于 2016-04-17 09:58:56

更新

我解决了我的问题。我用重写方法解决了这个问题。我在python脚本中创建了另一个名为MyLoggingEventHandler的类,并使用getpass.getuser()函数包含了用户名。现在,我可以在日志语句中获得用户的详细信息。

代码语言:javascript
复制
class MyLoggingEventHandler(LoggingEventHandler):

    def on_moved(self, event):
            super(LoggingEventHandler, self).on_moved(event)
            what = 'directory' if event.is_directory else 'file'
            logging.info("Moved %s: from %s to %s, by %s", what, event.src_path, event.dest_path, getpass.getuser())

    def on_created(self, event):
            super(LoggingEventHandler, self).on_created(event)
            what = 'directory' if event.is_directory else 'file'
            logging.info("Created %s: %s, by %s", what, event.src_path, getpass.getuser())

    def on_deleted(self, event):
            super(LoggingEventHandler, self).on_deleted(event)
            what = 'directory' if event.is_directory else 'file'
            logging.info("Deleted %s: %s, by %s", what, event.src_path, getpass.getuser())

    def on_modified(self, event):
            super(LoggingEventHandler, self).on_modified(event)
            what = 'directory' if event.is_directory else 'file'
            logging.info("Modified %s: %s, by %s", what, event.src_path, getpass.getuser())

这是我日志文件中的两行。

代码语言:javascript
复制
2016-04-17 15:23:16 - Modified file: /path/to/file.txt, by myusername - 
2016-04-17 15:23:19 - Modified file: /path/to/file2.txt, by myusername -
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36674895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档