• linux系统日志


    目录

    一、打开日志文件

    二、向日志文件中写消息 

    三、关闭日志 

    四、如何查看进程记录的日志信息: 


        守护进程的标准终端已定位在空设备上,当进程中出现错误时,无法将错误再输出到终端上,
        需要通过系统日志记录进程中的错误。

    一、打开日志文件

         #include <syslog.h>
         void openlog(const char *ident, int option, int facility);
         //参数1 ----ident: 字符串,它将添加在信息message的前面
         //参数2 ----option:一般使用LOG_PID,在消息中增加进程号
         //参数3 ----facility: 指明应用进程的类型
                       LOG_DAEMON     守护进程
                       LOG_FTP        ftp服务进程
                       LOG_KERN       内核进程
                       LOG_LPR        打印系统
                       LOG_MAIL       邮件系统
                       LOG_NEWS       网络新闻系统
                       LOG_SYSLOG     日志系统
                       LOG_USER       用户进程
        

    二、向日志文件中写消息 


        void syslog(int priority, const char *format, ...);
        //参数1 ----- priority:消息的优先级 
                           LOG_EMERG      非常紧急的消息
                           LOG_ALERT      应当立即纠正的错误
                           LOG_CRIT       硬件错误
                           LOG_ERR        错误信息
                           LOG_WARNING    警告信息
                           LOG_NOTICE     需要注意的消息
                           LOG_INFO       正常信息
                           LOG_DEBUG      调试信息
        //参数2 --- format:消息的格式控制串
        //变参: 与printf中的变参功能类似

    三、关闭日志 


         void closelog(void);
         
        例如: 
     

    1.     int main(void)
    2.     {
    3.         daemon_init();  //初始化守护进程
    4.         /*****************下面为守护进程执行的代码*******************/
    5.         //每隔一秒钟向文件中写一条时间信息
    6.         FILE *fp;
    7.         time_t tm;
    8.         char buf[100];
    9.         //打开系统日志文件
    10.         openlog("测试日志",LOG_PID,LOG_DAEMON);
    11.         fp  = fopen("1.txt","r");
    12.         if(NULL==fp){
    13.             //向日志文件中记录进程错误信息
    14.             syslog(LOG_ERR,"fopen:%s\n",strerror(errno));
    15.             exit(1);
    16.         }
    17.         while(1){
    18.             time(&tm);
    19.             sprintf(buf,"%s",ctime(&tm));
    20.             fputs(buf,fp);
    21.             fflush(fp);
    22.             sleep(1);
    23.         }
    24.         //关闭系统日志文件
    25.         closelog();
    26.         return 0;
    27.     }

    四、如何查看进程记录的日志信息: 

         消息记录在日志文件中: /var/log/syslog


        方法一:直接打开日志文件查看 /var/log/syslog
            162 Aug 10 14:30:44 yutou测试日志[8356]: fopen:No such file or directory
            
        方法二:通过命令grep查找进程的记录的信息
            yutou@ubuntu:~/2206/process/day02_code$ grep 测试日志 /var/log/syslog -n
            162:Aug 10 14:30:44 farsight 测试日志[8356]: fopen:No such file or directory

  • 相关阅读:
    数学建模__线性规划Python实现
    内核的架构 --- 宏内核与微内核
    算法练习5——多数元素
    phpinfo中的重要信息
    【ManageEngine】如何利用好OpManager的报表功能
    FastGPT知识库结构讲解
    el-table实现转置表格
    异构网络互联;路由与转发;SDN基本概念;拥塞控制
    Redis——安装及使用
    【NestJS系列】核心概念:Middleware中间件
  • 原文地址:https://blog.csdn.net/qq_54075859/article/details/126621811