All posts tagged syslog

icon_oval_green_php

L’actual model de programació, amb serveis distribuits i interactivitat AJAX, provoca que els programadors a cops perdem el fil del que està succeint en els nostres sistemes. El debug tradicional no funciona perquè l’script no s’està executant seguint un camí, ans que es criden serveis des del mateix servidor.

Una manera elegant de deixar constància del que està fent el nostre script és emprar el log del sistema amb la comanda syslog de PHP.

En primer lloc crearem un nou local de syslog que destinarem a les aplicacions PHP. Seguint les instruccions d’aquest enllaç a l’apartat Creant un nou local de syslog afegirem a /etc/syslog.conf

# 3 PHP
#
local3.* /var/log/crt.php.log

I llavors a tots els scripts que volguem que deixin anotacions farem:
define_syslog_variables();
openlog(__CLASS__ . "::". __FUNCTION__, LOG_PERROR , LOG_LOCAL3);
syslog(LOG_DEBUG, " línia:: " . __LINE__ . " --- test " . $test);
closelog();

sent $test la variable que volem controlar.

Trobarem a /var/log/crt.php.log les anotacions dels nostres scripts.

Més informació: syslog()

Una manera de saber els paquets que hem instal·lat durant la vida d’un sistema és logejar apt-get, al ser aquesta comanda la via més pràctica d’instal·lar i actualitzar aplicacions en un sistema. És recomabable fer aquesta acció el primer cop que instal·lem un sistema, i així guardar tota la història al log. Per aconseguir un log d’apt-get seguirem aquestses pases:

Creant un nou local de syslog

Afegirem un nou aplicatiu que syslog captura editant /etc/syslog.conf
# 4 - apt-get
#
local4.* /var/log/crt.apt-get.log

I reiniciarem el dimoni dels logs
/etc/init.d/sysklogd restart

Creant un nou procès per a apt-get

Crearem un arxiu anomenat 01syslog a /etc/apt-get/apt-conf.d/ amb aquest contingut:
DPkg::Pre-Install-Pkgs {"/usr/local/bin/syslog-apt-get ";};

Nota: per a ubuntu 6.06 el trobareu a /etc/apt/apt-conf.d/

Fem Pre-Install pq segons expliquen en aquesta FAQ és qui du el nom del paquet.

Crearem un script /usr/local/bin/syslog-apt-get amb aquest contingut
#!/bin/bash
while read paket;
do logger -p local4.info ${paket#/var/cache/apt/archives/};
done

I fem que sigui executable
chmod gu+x /usr/local/bin/syslog-apt-get

I ja està operatiu, sempre més que afem apt-get install el que sigui, tindrem el log a /var/log/crt.apt-get.log per exemple, al fer
apt-get install build-essential

obtindrem:
Nov 25 12:11:11 rehman logger: libc6_2.3.6-0ubuntu20.5_i386.deb
Nov 25 12:11:11 rehman logger: libc6-i686_2.3.6-0ubuntu20.5_i386.deb
Nov 25 12:11:11 rehman logger: binutils_2.16.1cvs20060117-1ubuntu2.1_i386.deb
Nov 25 12:11:11 rehman logger: linux-kernel-headers_2.6.11.2-0ubuntu18_i386.deb
Nov 25 12:11:11 rehman logger: libc6-dev_2.3.6-0ubuntu20.5_i386.deb
Nov 25 12:11:11 rehman logger: cpp-4.0_4.0.3-1ubuntu5_i386.deb
Nov 25 12:11:11 rehman logger: cpp_4%3a4.0.3-1_i386.deb
Nov 25 12:11:11 rehman logger: gcc-4.0_4.0.3-1ubuntu5_i386.deb
Nov 25 12:11:11 rehman logger: gcc_4%3a4.0.3-1_i386.deb
Nov 25 12:11:11 rehman logger: libstdc++6-4.0-dev_4.0.3-1ubuntu5_i386.deb
Nov 25 12:11:11 rehman logger: g++-4.0_4.0.3-1ubuntu5_i386.deb
Nov 25 12:11:11 rehman logger: g++_4%3a4.0.3-1_i386.deb
Nov 25 12:11:11 rehman logger: make_3.80+3.81.b4-1_i386.deb
Nov 25 12:11:11 rehman logger: dpkg-dev_1.13.11ubuntu7_all.deb
Nov 25 12:11:11 rehman logger: build-essential_11.1_i386.deb