标签: syslog

如何在Python中配置到syslog的日志记录?

我无法理解Python的logging模块.我的需求非常简单:我只想将所有内容记录到syslog中.阅读文档后,我想出了这个简单的测试脚本:

import logging
import logging.handlers

my_logger = logging.getLogger('MyLogger')
my_logger.setLevel(logging.DEBUG)

handler = logging.handlers.SysLogHandler()

my_logger.addHandler(handler)

my_logger.debug('this is debug')
my_logger.critical('this is critical')
Run Code Online (Sandbox Code Playgroud)

但是此脚本不会在syslog中生成任何日志记录.怎么了?

python logging syslog

113
推荐指数
8
解决办法
12万
查看次数

如何在Linux上检查Bash中的syslog?

在C中我们以这种方式记录:

syslog( LOG_INFO, "proxying %s", url );
Run Code Online (Sandbox Code Playgroud)

在Linux中我们如何检查日志?

linux bash syslog

65
推荐指数
5
解决办法
15万
查看次数

您如何阅读段错内核日志消息

这可能是一个非常简单的问题,我正在尝试调试一个生成以下段错误的应用程序 kern.log

kernel: myapp[15514]: segfault at 794ef0 ip 080513b sp 794ef0 error 6 in myapp[8048000+24000]

这是我的问题:

  1. 有没有关于segfault上的差异错误号的文档,在这个例子中它是错误6,但我看到错误4,5

  2. 这些信息的含义是at bf794ef0 ip 0805130b sp bf794ef0 and myapp[8048000+24000]什么?

到目前为止,我能够使用符号进行编译,当我执行x 0x8048000+24000它时返回一个符号,这是正确的方法吗?到目前为止,我的假设如下:

  • sp =堆栈指针?
  • ip =指令指针
  • at = ????
  • myapp [8048000 + 24000] =符号的地址?

c c++ unix syslog segmentation-fault

61
推荐指数
3
解决办法
5万
查看次数

在Mac上读取syslog输出

我有一个为linux编写的程序,我正在尝试在我的MacOS 10.5机器上构建和运行它.该程序构建和运行没有问题,但它会对syslog进行多次调用.我知道syslogd正在我的mac上运行,但我似乎无法找到我的syslog调用输出到的位置.

syslog调用的形式

syslog (LOG_WARNING, "Log message");
Run Code Online (Sandbox Code Playgroud)

知道我在哪里可以找到我的日志输出吗?

macos syslog

52
推荐指数
6
解决办法
7万
查看次数

syslog中的多行日志记录

所以我已经配置我的Python应用程序使用Python的SysLogHandler登录到syslog,一切正常.除了多线处理.并不是说我需要如此糟糕地发出多行日志记录(我做了一点),但我需要能够阅读Python的异常.我正在使用Ubuntu和rsyslog 4.2.0.这就是我得到的:

Mar 28 20:11:59 telemachos root: ERROR 'EXCEPTION'#012Traceback (most recent call last):#012  File "./test.py", line 22, in <module>#012    foo()#012  File "./test.py", line 13, in foo#012    bar()#012  File "./test.py", line 16, in bar#012    bla()#012  File "./test.py", line 19, in bla#012    raise Exception("EXCEPTION!")#012Exception: EXCEPTION!
Run Code Online (Sandbox Code Playgroud)

测试代码,以备不时之需:

import logging
from logging.handlers import SysLogHandler

logger = logging.getLogger()
logger.setLevel(logging.INFO)
syslog = SysLogHandler(address='/dev/log', facility='local0')
formatter = logging.Formatter('%(name)s: %(levelname)s %(message)r')
syslog.setFormatter(formatter)
logger.addHandler(syslog)

def foo():
    bar()

def bar():
    bla()

def bla():
    raise Exception("EXCEPTION!")

try:
    foo()
except:
    logger.exception("EXCEPTION")
Run Code Online (Sandbox Code Playgroud)

python logging syslog rsyslog

36
推荐指数
2
解决办法
2万
查看次数

Syslog真的有1KB的邮件限制吗?

似乎Syslog的消息限制为1KB.这是硬编码到Syslog协议中,还是可以为每个服务器设置的参数?

我希望我读过的文章已经过时了,所以如果您有任何信息请分享.

syslog

29
推荐指数
2
解决办法
3万
查看次数

在Unix上将C++ std :: clog重定向到syslog

我在Unix上使用C++程序,将消息发送到syslog.

当前代码使用与printf类似的syslog系统调用.

现在我宁愿为此目的使用流,通常是内置的std :: clog.但是clog只是将输出重定向到stderr,而不是syslog,这对我来说没用,因为我还将stderr和stdout用于其他目的.

我在另一个答案 中看到,使用rdbuf()将它重定向到一个文件很容易,但我看不到应用该方法来调用syslog,因为openlog没有返回一个文件处理程序我可以用来绑定它的流.

有没有其他方法可以做到这一点?(看起来非常基本的unix编程)?

编辑:我正在寻找一个不使用外部库的解决方案.@Chris提出的建议可能是一个良好的开端,但仍然有点模糊,无法成为公认的答案.

编辑:使用Boost.IOStreams是好的,因为我的项目已经使用了Boost.

可以与外部库链接,但也是一个关注点,因为它是GPL代码.依赖性也是一种负担,因为它们可能与其他组件冲突,在我的Linux发行版上不可用,引入第三方错误等.如果这是唯一的解决方案,我可以考虑完全避免流......(遗憾).

c++ syslog stream clog

26
推荐指数
3
解决办法
1万
查看次数

syslog.syslog vs SysLogHandler

我正在研究如何从我的Python应用程序中登录到syslog,我发现有两种方法可以:

  1. 使用syslog.syslog()例程
  2. 使用记录器模块SysLogHandler

哪个是最好的选择,每个的优点/缺点等等,因为我真的不知道应该使用哪一个.

python logging syslog

21
推荐指数
2
解决办法
5256
查看次数

用于Windows的开源Syslog守护程序

任何人都可以推荐Windows的开源Syslog守护进程(特别是Windows 2008 64位).

谢谢

windows logging open-source syslog

20
推荐指数
1
解决办法
7万
查看次数

如何使用Django 1.3日志字典配置设置SysLogHandler

我没有运气找到有关使用Django 1.3字典配置设置syslog日志记录的任何信息.Django文档不包括syslog,python文档不够清晰,根本不包括字典配置.我从以下开始,但我仍然坚持如何配置SysLogHandler.

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'handlers': {
        'syslog':{
            'level':'DEBUG',
            'class':'logging.handlers.SysLogHandler',
            'formatter': 'verbose'
        },

    },
    'loggers': {
        'django': {
            'handlers':['syslog'],
            'propagate': True,
            'level':'INFO',
        },
        'myapp': {
            'handlers': ['syslog'],
            'propagate': True,
            'level': 'DEBUG',
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

django syslog

18
推荐指数
2
解决办法
9586
查看次数

标签 统计

syslog ×10

logging ×4

python ×3

c++ ×2

bash ×1

c ×1

clog ×1

django ×1

linux ×1

macos ×1

open-source ×1

rsyslog ×1

segmentation-fault ×1

stream ×1

unix ×1

windows ×1