Ghép mọi thứ lại với nhau từ đây và những nơi khác, đây là những gì tôi đã nghĩ ra hoạt động trên Ubuntu 12.04 và centOS6
Tạo một tệp có đuôi /etc/rsyslog.d/
.conf và thêm văn bản sau
local6.* /var/log/my-logfile
Khởi động lại rsyslog
, tải lại dường như KHÔNG hoạt động đối với các tệp nhật ký mới. Có lẽ nó chỉ tải lại các tệp conf hiện có?
sudo restart rsyslog
Sau đó, bạn có thể sử dụng chương trình thử nghiệm này để đảm bảo rằng nó thực sự hoạt động.
import logging, sys
from logging import config
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(module)s P%(process)d T%(thread)d %(message)s'
},
},
'handlers': {
'stdout': {
'class': 'logging.StreamHandler',
'stream': sys.stdout,
'formatter': 'verbose',
},
'sys-logger6': {
'class': 'logging.handlers.SysLogHandler',
'address': '/dev/log',
'facility': "local6",
'formatter': 'verbose',
},
},
'loggers': {
'my-logger': {
'handlers': ['sys-logger6','stdout'],
'level': logging.DEBUG,
'propagate': True,
},
}
}
config.dictConfig(LOGGING)
logger = logging.getLogger("my-logger")
logger.debug("Debug")
logger.info("Info")
logger.warn("Warn")
logger.error("Error")
logger.critical("Critical")