Computer >> Máy Tính >  >> Lập trình >> Python

Giao diện Python với các quy trình thư viện nhật ký hệ thống UNIX

Để lấy thông tin thư viện nhật ký hệ thống UNIX, chúng ta cần sử dụng mô-đun nhật ký hệ thống vào các chương trình của mình. Mô-đun này có nhật ký hệ thống có các mô-đun khác nhau cho thư viện nhật ký hệ thống.

Để sử dụng mô-đun này, chúng ta nên nhập nó bằng cách sử dụng -

import syslog

Các phương pháp như dưới đây -

Phương thức syslog.syslog (tin nhắn) hoặc syslog.syslog (ưu tiên, tin nhắn)

Phương thức này được sử dụng để gửi một thông báo kiểu chuỗi đến trình ghi nhật ký hệ thống. Mỗi tin nhắn có một mức độ ưu tiên. Đối số ưu tiên có thể được sử dụng để đặt mức độ ưu tiên của thông báo đã cho.

Phương thức syslog.openlog ([danh tính [, logoption [, cơ sở]]])

Phương pháp này được sử dụng để ghi các tùy chọn ghi nhật ký của các cuộc gọi nhật ký hệ thống tiếp theo. Đối số nhận dạng là đối số kiểu chuỗi; nó được giả vờ cho mọi tin nhắn.

Phương thức syslog.closelog ()

Phương pháp này được sử dụng để đặt lại mô-đun nhật ký hệ thống. Khi mô-đun được nhập, mô-đun này sẽ chuyển sang trạng thái đó.

Phương thức syslog.setlogmask (maskpri)

Phương thức này được sử dụng để đặt mặt nạ ưu tiên thành maskpri, nó trả về giá trị mặt nạ trước đó. Khi không có ưu tiên, mặt nạ sẽ bị bỏ qua.

Mã mẫu

import syslog, sys
syslog.openlog(sys.argv[0])
syslog.syslog(syslog.LOG_NOTICE, "This is a Log Notice")
syslog.openlog()

Đầu ra

$ python3 posix_example.py
$ sudo cat /var/log/syslog
Oct  7 00:05:23 unix_user-VirtualBox anacron[14271]: Job `cron.daily' terminated
Oct  7 00:05:23 unix_user-VirtualBox anacron[14271]: Normal exit (1 job run)
Oct  7 00:17:01 unix_user-VirtualBox CRON[14396]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Oct  7 00:22:35 unix_user-VirtualBox gnome-software[1599]: no app for changed ubuntu-dock@ubuntu.com
Oct  7 00:22:35 unix_user-VirtualBox gnome-software[1599]: no app for changed ubuntu-appindicators@ubuntu.com
Oct  7 00:22:36 unix_user-VirtualBox gnome-shell[1296]: [AppIndicatorSupport-DEBUG] Registering StatusNotifierItem :1.59/org/ayatana/NotificationItem/software_update_available
Oct  7 00:22:37 unix_user-VirtualBox gvfsd-metadata[3664]: g_udev_device_has_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
Oct  7 00:22:37 unix_user-VirtualBox gvfsd-metadata[3664]: g_udev_device_has_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
Oct  7 00:25:47 unix_user-VirtualBox snapd[5511]: storehelpers.go:398: cannot refresh: snap has no updates available: "core", "gnome-3-26-1604", "gnome-calculator", "gnome-characters", "gnome-logs", "gnome-system-monitor", "gtk-common-themes"
Oct  7 00:25:47 unix_user-VirtualBox snapd[5511]: autorefresh.go:387: auto-refresh: all snaps are up-to-date
Oct  7 00:27:32 unix_user-VirtualBox example.py: This is a Log Notice