2012-06-11 27 views
43

Tôi đã viết một ứng dụng thử nghiệm đơn giản để đăng nhập nội dung nào đó trong tệp nhật ký. Tôi đang sử dụng linux mint và sau khi ứng dụng thực thi tôi cố gắng xem nhật ký sử dụng lệnh này:Linux lưu trữ syslog của tôi ở đâu?

tail -n 100 /var/log/messages 

nhưng những thông điệp tập tin không tồn tại không phải thử nghiệm hoặc một cái gì đó. Dưới đây bạn có thể tìm thấy mã của tôi. Có lẽ tôi đang làm một cái gì đó sai, tập tin không được lưu trữ ở đó hoặc tôi cần phải kích hoạt đăng nhập vào bạc hà Linux.

#include <stdio.h> 
#include <stdlib.h> 
#include <syslog.h> 

void init_log() 
{ 
    setlogmask(LOG_UPTO(LOG_NOTICE)); 
    openlog("testd",LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); 
} 

int main(void) { 

    init_log(); 
    printf("Session started!"); 
    syslog(LOG_NOTICE, "Session started!!"); 
    closelog(); 

    return EXIT_SUCCESS; 
} 
+0

Tùy thuộc vào bộ ghi nhật ký hệ thống bạn đang sử dụng. Nó sẽ có một tập tin cấu hình ở đâu đó trong '/ etc /' mà bạn phải thay đổi cho mã định danh ('" test "' trong trường hợp của bạn) và cơ sở. –

Trả lời

38

Trên máy Ubuntu của tôi, tôi có thể xem kết quả tại /var/log/syslog.

Được ghi nhận bởi những người khác, đầu ra syslog() của bạn sẽ được ghi bởi tệp /var/log/syslog.
Bạn có thể xem nhật ký hệ thống, người dùng và các nhật ký khác tại /var/log.

Để biết thêm chi tiết: đây là số interesting link.

+0

Xem phần này cũng: http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch05_:_Troubleshooting_Linux_with_syslog#.Uy_0VvmSwep – AjayKumarBasuthkar

4

syslog() tạo thông điệp tường trình, sẽ được phân phối bởi syslogd.

Tệp để định cấu hình syslogd là /etc/syslog.conf. Tệp này sẽ cho biết vị trí của thư được ghi lại.

Cách thay đổi tùy chọn trong tệp này? Ở đây bạn đi http://www.bo.infn.it/alice/alice-doc/mll-doc/duix/admgde/node74.html

+1

Liên kết đó hiện đã chết. –

13

vị trí mặc định log (RHEL) là

thông điệp chung:

/var/log/messages 

điệp Xác thực:

/var/log/secure 

Thư sự kiện:

/var/log/maillog 

Kiểm tra /etc/syslog.conf của bạn (hoặc /etc/syslog-ng.conf nó phụ thuộc vào các cơ sở syslog bạn đã instaled)

Ví dụ:

$ cat /etc/syslog.conf 
# Log anything (except mail) of level info or higher. 
# Don't log private authentication messages! 
*.info;mail.none;authpriv.none   /var/log/messages 

# The authpriv file has restricted access. 
authpriv.*        /var/log/secure 

# Log all the mail messages in one place. 
mail.*         /var/log/maillog 

#For a start, use this simplifed approach. 
*.*          /var/log/messages 
18

Ngoài việc chấp nhận trả lời, hữu ích khi biết những điều sau đây ...

Mỗi chức năng trong số đó phải có các trang thủ công được liên kết với chúng.

Nếu bạn chạy man -k syslog (một từ khóa tìm kiếm của các trang người đàn ông), bạn sẽ nhận được một danh sách các trang người đàn ông mà tham khảo, hoặc khoảng syslog

$ man -k syslog 
logger (1)   - a shell command interface to the syslog(3) system l... 
rsyslog.conf (5)  - rsyslogd(8) configuration file 
rsyslogd (8)   - reliable and extended syslogd 
syslog (2)   - read and/or clear kernel message ring buffer; set c... 
syslog (3)   - send messages to the system logger 
vsyslog (3)   - send messages to the system logger 

Bạn cần phải hiểu các phần thủ công để để nghiên cứu thêm.

Dưới đây là một đoạn trích từ trang người đàn ông cho con người, giải thích phần xem man page:

The table below shows the section numbers of the manual followed by 
the types of pages they contain. 

    1 Executable programs or shell commands 
    2 System calls (functions provided by the kernel) 
    3 Library calls (functions within program libraries) 
    4 Special files (usually found in /dev) 
    5 File formats and conventions eg /etc/passwd 
    6 Games 
    7 Miscellaneous (including macro packages and conven‐ 
     tions), e.g. man(7), groff(7) 
    8 System administration commands (usually only for root) 
    9 Kernel routines [Non standard] 

Để đọc run trên

$man man 

Vì vậy, nếu bạn chạy man 3 syslog bạn sẽ có được một hướng dẫn đầy đủ trang cho hàm syslog mà bạn đã gọi trong mã của mình.

SYSLOG(3)    Linux Programmer's Manual    SYSLOG(3) 

NAME 
    closelog, openlog, syslog, vsyslog - send messages to the system 
    logger 

SYNOPSIS 
    #include <syslog.h> 

    void openlog(const char *ident, int option, int facility); 
    void syslog(int priority, const char *format, ...); 
    void closelog(void); 

    #include <stdarg.h> 

    void vsyslog(int priority, const char *format, va_list ap); 

Không phải câu trả lời trực tiếp nhưng hy vọng bạn sẽ thấy điều này hữu ích.

4

Ghi nhật ký rất cấu hình trong Linux và bạn có thể muốn xem xét /etc/syslog.conf (hoặc có thể dưới /etc/rsyslog.d/). Chi tiết phụ thuộc vào hệ thống con đăng nhập và phân phối.

Xem thêm các tệp dưới /var/log/ (và có thể chạy dmesg cho nhật ký hạt nhân).

6

Bạn phải thông báo cho hệ thống thông tin nào cần đăng nhập và vị trí đặt thông tin. Ghi nhật ký được cấu hình trong tệp cat /etc/rsyslog.conf, rsyslog khởi động lại để tải cấu hình mới. Các quy tắc ghi nhật ký mặc định thường có trong tệp /etc/rsyslog.d/50-default.conf.

Các vấn đề liên quan