博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
syslog - 日志文件详解
阅读量:6081 次
发布时间:2019-06-20

本文共 2197 字,大约阅读时间需要 7 分钟。

日志文件,是linux最为重要的记录文件,记录着日常的操作。

我们在linux编程的时候,通常会使用日志文件记录操作和信息,日志系统提供了我们几个API接口供调用

1. API

void openlog(const char *ident, int option, int facility);  //关联日志文件void syslog(int priority, const char *format, ...);         //写入信息void closelog(void);                                        //关闭关联

参数

  • ident: 一般设置为程序名,如果为NULL, 则默认为本程序名;将该指向的程序输出的信息写入到syslog中
  • option:
option Description
LOG_CONS 如果信息无法写入到syslog,那么直接打印到控制端
LOG_NDELAY 立刻开启链接到syslog
LOG_NOWAIT 不要等待可能建立的子进程
LOG_ODELAY 与LOG_NDELAY相反
LOG_PERROR 错误信息也打印到stderr
LOG_PID 每次打印信息,都加上进程的ID号
  • facility: 程序以何种方式打印信息
facility Description
LOG_AUTH security/authorization messages
LOG_AUTHPRIV security/authorization messages (private)
LOG_CRON clock daemon (cron and at)
LOG_DAEMON system daemons without separate facility value
LOG_FTP ftp daemon
LOG_KERN kernel messages (these can't be generated from user processes)
LOG_LPR line printer subsystem
LOG_MAIL mail subsystem
LOG_NEWS USENET news subsystem
LOG_SYSLOG messages generated internally by syslogd(8)
LOG_USER (default) generic user-level messages
LOG_UUCP UUCP subsystem
  • priority: 信息的重要程度,为 facility | level(按位或),level的值如下:
level Description
LOG_EMERG system is unusable
LOG_ALERT action must be taken immediately
LOG_CRIT critical conditions
LOG_ERR error conditions
LOG_WARNING warning conditions
LOG_NOTICE normal, but significant, condition
LOG_INFO informational message
LOG_DEBUG debug-level message

2. 清空/误删syslog

有的时候,我们需要清空syslog的所有信息,以便我们使用它调试我们的项目。

但是,新手往往不知道如何清空syslog这个日志文件:

  • 正确方式:
cat /dev/null > /etc/init.d/syslog
  • 错误方式:
    1. 直接 rm -f /etc/init.d/syslog
    1. vim /etc/init.d/syslog,然后删除所有内容

解决办法:

  • 错误1后,千万不能自己touch一个syslog出来,这样根本写不进去的;
  • 错误2后,一定记得也把这个syslog文件删除
  • 重启syslogd这个守候进程: /etc/init.d/rsyslog restart (ubuntu为例)
  • syslog会自动生成

当然网上也有其它说法,但我的ubuntu是采用以上方式完成重建的,试了其它的博客说的方法都是无效的。

对了,我的ubuntu的版本是:

root@jimmy-vm:~# uname -aLinux jimmy-vm 4.4.0-119-generic #143-Ubuntu SMP Mon Apr 2 16:08:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linuxroot@jimmy-vm:~# lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription:    Ubuntu 16.04 LTSRelease:        16.04Codename:       xenialroot@jimmy-vm:~# cat /etc/issueUbuntu 16.04 LTS \n \l

转载于:https://www.cnblogs.com/Jimmy1988/p/8892483.html

你可能感兴趣的文章
一个经典案例讲到极致
查看>>
MFC应用程序
查看>>
使用Navicat for Mysql连接服务器中的mysql服务
查看>>
flume简介架构
查看>>
FreeRADIUS 、DaloRADIUS 搭建记录
查看>>
.Net基础体系和跨框架开发普及
查看>>
精华【分布式微服务云架构dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!...
查看>>
SQL注入中union查询ntext数据类型
查看>>
禅道开源版10.3升级至10.6
查看>>
php中implode()和explode()的应用
查看>>
Mybatis第一天框架课程(上)
查看>>
前端: jquery绑定/动态变量/find/each/
查看>>
QuickBI助你成为分析师-数据建模(二)
查看>>
入门一班 20181031 rsync
查看>>
mybatis 中文文档
查看>>
Mysql 数据库用户密码管理
查看>>
核心交换机与普通交换机有那些优势与区别
查看>>
RAID
查看>>
论程序员成长的正确姿势
查看>>
微小V营销手机详细讲解,夏天老师书写
查看>>