本篇文章给大家谈谈怎么自定义日志Linux,以及怎么启用日志功能对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、linux 我可以创建我自己的日志吗
- 2、linux怎么在程序中用自定义日志文件输出信息?
- 3、linux如何设置网站日志
- 4、linux 中修改日志级别怎么修改
- 5、如何配置Linux的日志文件
linux 我可以创建我自己的日志吗
黑马韩前成linux从入门到精通之剖析日志系统议程理解syslog系统熟悉syslogd的配置文件及其语法学会查看系统日志理解日志滚动的必要性及实现方法 syslog什么是syslog.日志的主要用途是系统审计、检测追踪和分析统计。.为了保证linux系统正常运行、准确解决遇到的各种各样的系统问题,认真地读取日志文件是管理员的一项非常重要的任务。.linux内核由很多子系统组成,包括网络、文件访问、内存管理等。子系统需要给用户传送一些消息,这些消息包括消息的来源及其重要性等。所有的子系统都要把消息送到一个可以维护的公用消息区,于是,就有了syslog。.syslog是一个综合的日志记录系统。它的主要功能是:方便日志管理和分类存放日志。syslog使程序设计者从繁重的、机械的编写日志文件代码的工作中解脱出来,每个程序都有自己的日志记录策略。管理员对保存什么信息或是信息存放在哪里没有控制权。syslogd的配置文件.syslogd的配置文件在/etc/syslog.conf规定了系统中要监视的事件和相应的日志的保存位置。.cat /etc/syslog.cong syslogd级别字段.级别字段用于指明与每一种功能相关的级别和优先级:alert----需要立即引起注意的情况。crit----危险情况的报告。err----除了emerg、alert、crit的其他错误。warning----警告信息。notice----需要引起注意的情况。info----值得报告的信息。debug------由运行于debug模式的程序所引起的消息。none-----用于禁止任何消息。*------所有级别。除了none。emerg----出现紧急情况使得该系统不可用。syslogd动作字段.动作字段用于描述对应功能的动作。file-----指定一个绝对路径的日志文件记录日志信息。username-----发送消息到指定用户,*代表所有用户。device---将消息发送到指定的设备中,如/dev/consols。@hostname将消息发送到可解析的远程主机hostname,且该主机必须正在运行syslogd并可以识别syslog的配置文件。 查看日志文件.常见的日志文件。.日志文件通常存放在/var/log目录下。在该目录下除了包括syslogd记录的日志之外,同时还包含所用应用程序的日志。.为了查看日志文件的内容必须要有root权限。日志文件中的信息很重要,只能让超级用户访问这次文件的权限。 logcups/------存储cups打印系统的日志记录。httpd/---记录apache的访问日志和错误日志目录。mail/----存储mail日志的目录。news/----存储INN新闻系统的日志目录。boot.log----记录系统启动日志。dmesg-----记录系统启动时的消息日志。maillog---记录邮件系统的日志。messages----由syslogd记录的info或更高级别的消息日志。secure-------由syslogd记录的认证日志。WTMP----一个用户每次登陆进入和退出时间的永久记录。 查看文本日志文件.绝大多数日志文件都是纯文本文件,每一行就是一个消息。只要是在linux下能够处理纯文本的工具都能用来查看日志文件。可以使用cat、tac、more、less、tail和grep进行查看。 .文件中每一行表示一个消息,而且都是由四个域的固定格式组成。.时间标签(timestamp):表示消息发出的日期和时间。.主机名(hostname):表示生成消息的计算机的名字。.生成消息的子系统的名字。可以是kernel,表示消息来自内核或者是进程的名字,表示发出消息的程序的名字。.在方括号里的是进程的PID。.消息(message):即消息的内容。#strings wtmp#ls#strings btmp查看非文本日志文件.也有一些日志文件是二进制文件,需要使用相应的命令去读取#lastlog more.使用lastlog命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。.last.last命令往回搜索/var/log/wtmp 来显示自从文件第一次创建以来登录过的用户。.lastb.lastb命令搜索/var/log/btmp 来显示登录未成功的信息。.#last -f btmp.who.who命令查询wtmp文件并报告当前登录的每个用户。who命令的缺省输出包括用户名、终端类型、登录日期及远程主机。.w.w显示的信息更为详细。 日志滚动.为什么使用日志滚动.所有的日志文件都会随着时间的推移和访问次数的增加而迅速增长,因此必须对日志文件进行定期清理以免造成磁盘空间的不必要的浪费。同时也加快了系统管理员查看日志所用的时间,因为打开小文件的速度远比打开大文件的速度要快的多。.logrotate命令格式为:logrorate [选项]configfile-d:详细显示指令执行过程,便于排错或了解程序执行的情况。-f:强行启动记录文件维护操作,即使logrotate指令认为无需要亦然。-m command:指定发送邮件的程序,默认为/usr/bin/mail。-v:在执行日志滚动时,显示详细信息。.logratate默认的主配置文件是/etc/logratate.conf./etc/logratate.d的目录下的文件,这些文件被include到主配置文件/etc/logratate.conf中。.每个文件的基本格式均为相同.#cat /etc/logratate.d/syslog
linux怎么在程序中用自定义日志文件输出信息?
很简单, 打开文件/写入文件.
bash脚本: echo "message" /path/to/yourlogfile
c: 这个就不用说了吧, fopen("/path/to/yourlogfile", "a"); 然后调用fwrite
如果希望printf/fprintf(stderr,等标准输出/标准错误输出直接输出到日志, 用dup2:
#include stdio.h
#include unistd.h
int main()
{
FILE *fp = fopen("log.txt", "a");
if(fp){
int no = fileno(fp);
dup2(no, 1);
dup2(no, 2);
printf("stdout log\n");
fprintf(stderr, "stderr log\n");
fclose(fp);
}
return 0;
}
linux如何设置网站日志
linux可以通过shell脚本+crontab实现传输日志到日志服务器。
希望对你有所帮助,祝你好运!
linux 中修改日志级别怎么修改
Linux系统syslog日志为8个等级,从0到7;系统日志保存在在/var/log/下面,修改日志级别方法如下:
syslog的日志等级有8个,默认是info,这时候用syslog为debug(最低日志级别)来写日志,syslog服务是不会写如日志的。
比如:
[root@umail180 etc]# cat /etc/syslog.conf
*.info;mail.none;authpriv.none;cron.none
/var/log/messages
这时候用-p选项来修改日志级别的优先级
[root@umail180 etc]# logger -p debug "hello this is a test"
#-p选项来指定优先级,logger的默认优先为是info,指定info或更高的优先级都可以被syslog所接收。
优先级(priority),优先级越低情况越严重:
emerg 0 系统不可用
alert 1 必须马上采取行动的事件
crit 2 关键的事件
err 3 错误事件
warning 4 警告事件
notice 5 普通但重要的事件
info 6 有用的信息
debug 7 调试信息
如何配置Linux的日志文件
日志也应该是用户注意的地方。不要低估日志文件对网络安全的重要作用,因为日志文件能够详细记录系统每天发生的各种各样的事件,用户可以通过日志文件检查错误产生的原因,或者在受到攻击、被入侵时追踪攻击者的踪迹。日志的两个比较重要的作用是审核和监测。配置好的Linux的日志非常强大。对于Linux系统而言,所有的日志文件在/var/log下。默认情况下,Linux的日志文件没有记录FTP的活动。用户可以通过修改/etc/ftpacess让系统记录FTP的一切活动。 /etc/syslog.conf的格式 Linux系统的日志文件是可以配置的,在前面的章节中已经介绍了如何定制Apache、wu-ftpd、Sendmail的日志文件。Linux系统的日志文件是由/etc/syslog.conf决定的,用户有必要花时间仔细配置一下/etc/syslog.conf。下面是/etc/syslog.conf的范例:# Log all kernel messages to the kernlog. # Logging much else clutters up the screen. kern.* /var/log/kernlog# Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages *.warning /var/log/syslog # The authpriv file has restricted access. authpriv.* /var/log/secure# Log all the mail messages in one place. mail.* /var/log/maillog# Log cron stuff cron.* /var/log/cron# Everybody gets emergency messages, plus log them on another# machine. *.emerg# Save mail and news errors of level err and higher in a # special file. uucp,news.crit /var/log/spooler# Save boot messages also to boot.log local7.* /var/log/boot.log# INN news.=crit /var/log/news/news.crit news.=err /var/log/news/news.err news.notice /var/log/news/news.notice 可以看出,该配置文件的每一行的第一个字段列出要被记录的信息种类,第二个字段则列出被记录的位置。第一个字段使用下面的格式:facility.level[;facility.level…] 此处的faciity是产生信息的系统应用程序或工具,level则是这个信息的重要程度。level的重要程度由低到高依次是:debug(调试消息)、info(一般消息)、notice(值得注意的消息)、warning(警告)、err(一般性错误)、crit(严重错误)、alert(或emerg,紧急情况)。facility包含有:auth(认证系统,如login或su,即询问用户名和口令)、cron(系统执行定时任务时发出的信息)、daemon(某些系统的守护程序的syslog,如由in.ftpd产生的log)、kern(内核的信息)、lpr(打印机的信息)、mail(处理邮件的守护进程发出的信息)、mark(定时发送消息的时标程序)、news(新闻组的守护进程的信息)、user(本地用户的应用程序的信息)、uucp(uucp子系统的信息)和“*”(表示所有可能的facility)。 将日志文件记录到远程主机 如果有另一个Linux或UNIX系统,那么可以配置日志文件,让其把消息发到另外一个系统并记录下来。这也是为什么上面的所有日志文件都记录了主机名的原因。
怎么自定义日志Linux的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于怎么启用日志功能、怎么自定义日志Linux的信息别忘了在本站进行查找喔。