Эта программа нигде не печатает системные журналы?

0

Я использую fc19, теперь я установил syslog-ng. Похоже, syslog больше не доступен для fc19. Я начал службу syslog-ng. Состояние syslog-ng запущено. Это моя программа. Я не знаю, где он регистрирует вывод.

#include<iostream>
#include<ctime>
#include<syslog.h>
#include <unistd.h>

using namespace std;

class my_syslog
{
  private:
  int m_sys;
  public:
  my_syslog(int init);
  void get_time();
 };

my_syslog::my_syslog(int init):m_sys(init)
{
  cout<<"Constructor called"<<endl;  
}

void my_syslog::get_time()
{
    time_t now = time(0);
    tm* localtm = localtime(&now);
    //cout << "SJ:The local date and time is: " << asctime(localtm) << endl;
    // Convert now to tm struct for UTC
    //tm* gmtm = gmtime(&now);
    //if (gmtm != NULL) {
    //cout << "The UTC date and time is: " << asctime(gmtm) << endl;
    //}
    syslog (LOG_INFO, "SJ:The local date and time is: %s",asctime(localtm));

}


int main(int argc, char **argv)
{
    my_syslog instant(100);
    for(int i = 0; i<=10;i++)
    {
      instant.get_time();
      sleep(10);

    }

    cout<<"Program End"<<endl;
    return 0;
}

Файл /etc/syslog-ng/syslog-ng.conf следующий.

@version:3.3

# syslog-ng configuration file.
#
# This should behave pretty much like the original syslog on RedHat. But
# it could be configured a lot smarter.
#
# See syslog-ng(8) and syslog-ng.conf(5) for more information.
#
# Note: it also sources additional configuration files (*.conf)
#       located in /etc/syslog-ng/conf.d/

options {
    flush_lines (0);
    time_reopen (10);
    log_fifo_size (1000);
    chain_hostnames (off);
    use_dns (no);
    use_fqdn (no);
    create_dirs (no);
    keep_hostname (yes);
};

source s_sys {
    file ("/proc/kmsg" program_override("kernel") flags(kernel));
    unix-dgram ("/dev/log");
    internal();
    # udp(ip(0.0.0.0) port(514));
};

destination d_cons { file("/dev/console"); };
destination d_mesg { file("/var/log/messages"); };
destination d_auth { file("/var/log/secure"); };
destination d_mail { file("/var/log/maillog" flush_lines(10)); };
destination d_spol { file("/var/log/spooler"); };
destination d_boot { file("/var/log/boot.log"); };
destination d_cron { file("/var/log/cron"); };
destination d_kern { file("/var/log/kern"); };
destination d_mlal { usertty("*"); };

filter f_kernel     { facility(kern); };
filter f_default    { level(info..emerg) and
                        not (facility(mail)
                        or facility(authpriv) 
                        or facility(cron)); };
filter f_auth       { facility(authpriv); };
filter f_mail       { facility(mail); };
filter f_emergency  { level(emerg); };
filter f_news       { facility(uucp) or
                        (facility(news) 
                        and level(crit..emerg)); };
filter f_boot   { facility(local7); };
filter f_cron   { facility(cron); };

#log { source(s_sys); filter(f_kernel); destination(d_cons); };
log { source(s_sys); filter(f_kernel); destination(d_kern); };
log { source(s_sys); filter(f_default); destination(d_mesg); };
log { source(s_sys); filter(f_auth); destination(d_auth); };
log { source(s_sys); filter(f_mail); destination(d_mail); };
log { source(s_sys); filter(f_emergency); destination(d_mlal); };
log { source(s_sys); filter(f_news); destination(d_spol); };
log { source(s_sys); filter(f_boot); destination(d_boot); };
log { source(s_sys); filter(f_cron); destination(d_cron); };


# Source additional configuration files (.conf extension only)
@include "/etc/syslog-ng/conf.d/*.conf"


# vim:ft=syslog-ng:ai:si:ts=4:sw=4:et:

Пожалуйста, помогите с тем, что здесь не так.

  • 1
    Прежде чем вы сможете использовать syslog() вам нужно openlog() .
Теги:
syslog

1 ответ

1
Лучший ответ

Прежде чем вы сможете использовать syslog() вам нужно openlog().

  • 1
    Нет, по умолчанию он открыт. Проверьте следующую ссылку - linuxselfhelp.com/gnu/glibc/html_chapter/libc_18.html
  • 1
    Кстати, я запустил его. Я обнаружил, что моя служба syslog-ng не работает. Изменений в коде нет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню