专栏首页python3Python中syslog功能代码

Python中syslog功能代码

参考网址:http://csl.name/py-syslog-win32/

在我们日常工作中,我们需要从Windows系统上发送syslog消息到syslog服务器。下面的代码能够工作的很好。

你能下载syslog.py代码:http://csl.name/py-syslog-win32/syslog.py

#!/usr/bin/python
# -*- encoding: iso-8859-1 -*-
"""
Python syslog client.
This code is placed in the public domain bythe author.
Written by Christian Stigen Larsen.
This is especially neat for Windows users,who (I think) don't
get any syslog module in the default pythoninstallation.
See RFC3164 for more info --http://tools.ietf.org/html/rfc3164
Note that if you intend to send messages toremote servers, their
syslogd must be started with -r to allow toreceive UDP from
the network.
"""
import socket
# I'm a python novice, so I don't know ofbetter ways to define enums
FACILITY = {
       'kern':0, 'user': 1, 'mail': 2, 'daemon': 3,
       'auth':4, 'syslog': 5, 'lpr': 6, 'news': 7,
       'uucp':8, 'cron': 9, 'authpriv': 10, 'ftp': 11,
       'local0':16, 'local1': 17, 'local2': 18, 'local3': 19,
       'local4':20, 'local5': 21, 'local6': 22, 'local7': 23,
}
LEVEL = {
       'emerg':0, 'alert':1, 'crit': 2, 'err': 3,
       'warning':4, 'notice': 5, 'info': 6, 'debug': 7
}
def syslog(message, level=LEVEL['notice'],facility=FACILITY['daemon'],
       host='localhost',port=514):
       """
       Sendsyslog UDP packet to given host and port.
       """
       sock= socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
       data= '<%d>%s' % (level + facility*8, message)
       sock.sendto(data,(host, port))
       sock.close()

示例用法:

from syslog import syslog

syslog('There were zwei peanuts walking downder strasse...', host='brit.ain')

为了让它工作,你必须确保syslog服务接收远程消息。你能通过使用-r选项启动syslogd。

我也喜欢Pyton docstring有多么的好,例如:

$ python

Python 2.5.1 (r251:54863, Apr 18 2007,08:51:08) [MSC v.1310 32 bit (Intel)] on win32

Type "help", "copyright","credits" or "license" for more information.

>>> import syslog

>>> help(syslog)

Help on module syslog:

NAME

   syslog - Python syslog client.

FILE

   c:\documents and settings\csl\jall\syslog.py

DESCRIPTION

   This code is placed in the public domain by the author.

   Written by Christian Stigen Larsen.

   This is especially neat for Windows users, who (I think) don't

    getany syslog module in the default python installation.

    SeeRFC3164 for more info -- http://tools.ietf.org/html/rfc3164

   Note that if you intend to send messages to remote servers, their

   syslogd must be started with -r to allow to receive UDP from

    thenetwork.

FUNCTIONS

   syslog(message, level=5, facility=3, host='localhost', port=514)

       Send syslog UDP packet to given host and port.

DATA

   FACILITY = {'auth': 4, 'authpriv': 10, 'cron': 9, 'daemon': 3, 'ftp':...

   LEVEL = {'alert': 1, 'crit': 2, 'debug': 7, 'emerg': 0, 'err': 3,'inf...

>>> 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • day21 01 包的初识

           包:把解决一类问题的模块放在同一个文件夹里面-----包(一个包里面通常会含有_init_.py文件(python2里面必须有),但是后面的就没有...

    py3study
  • Python Web框架Django学习

    ================================================================================...

    py3study
  • H3C VLAN-access+路由

             interface Vlanif10  ip address 192.168.1.254 255.255.255.0 interface Vl...

    py3study
  • 总结CSS3新特性(Animation篇)

    总结CSS3新特性(Animation篇) 动画(Animation),是CSS3的亮点.//之一 通过animation属性指定@k...

    贾顺名
  • 基于Oracle的私有云架构探析(连载一)@【DTCC干货分享】

    云是当今最为热门的一个话题或者说技术,在数据库界也一样,Oracle 12G这个名字不硬生生被掰弯成了Oracle 12C,数据库云在我看来能给企业带来的第一价...

    沃趣科技
  • python 多参数函数变换成单参数函数

    用户5760343
  • WSDM Cup 2019自然语言推理任务获奖解题思路

    美美导读:美团团队在刚刚结束的WSDM Cup 2019比赛“真假新闻甄别任务”中获得了第二名的好成绩。本文将详细介绍他们本次获奖的解决方案,里面用到了很多黑科...

    美团技术团队
  • 为什么机器学习模型在生产中会退化?

    由于意外的机器学习模型退化导致了几个机器学习项目的失败,我想分享一下我在机器学习模型退化方面的经验。实际上,有很多关于模型创建和开发阶段的宣传,而不是模型维护。...

    石晓文
  • 安全工具Aircrack-ng的使用

    开启了尘封数月的Kali Linux。 其实安全也是数据库学习方向的一个分支哦~~ 官方网站:http://aircrack-ng.org root@kali:...

    赵腰静
  • Bootstrap HTML编码规范

    语法 用两个空格来代替制表符(tab) -- 这是唯一能保证在所有环境下获得一致展现的方法。 嵌套元素应当缩进一次(即两个空格)。 对于属性的定义,确保全部使用...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券