Página 1 de 1

Cómo hacer log en Perl

NotaPublicado: 2015-11-05 07:47 @366
por edwardmorfa
Hola, mis amigos de Perl internacional, quiero saber cómo puedo crear un log para cuando se ejecute este script guarde la fecha, hora y usuario que corrió este script. Debe ser almacenado en una ruta específica.

#!/usr/bin/perl
use strict;
use warnings;
use Filesys::DiskSpace;

# file system /home or /dev/sda5
my $dir = "/home";

# get data for /home fs
my ($fs_type, $fs_desc, $used, $avail, $fused, $favail) = df $dir;

# calculate free space in %
my $df_free = (($avail) / ($avail+$used)) * 100.0;

# display message
my $out = sprintf("Disk space on $dir == %0.2f\n",$df_free);
print $out;



Gracias

Re: Cómo hacer log en Perl

NotaPublicado: 2015-11-06 15:56 @705
por explorer
Pues abriendo el archivo de log, y escribiendo lo que queramos.

La fecha y la hora se puede conseguir llamando a localtime() en modo escalar:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
> perl -E 'say scalar localtime'
Fri Nov  6 21:55:25 2015
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Re: Cómo hacer log en Perl

NotaPublicado: 2015-11-06 19:24 @850
por edwardmorfa
Gracias, explorer, disculpen la pregunta básica pero no sé Perl, solo estoy haciendo esto con solo conocimiento de lógica que tengo para cumplir un requerimiento de una tarea. Entonces, explorer, ¿cómo la guardo en una dirección específica para funcione como un log?


Mil gracias,

Re: Cómo hacer log en Perl

NotaPublicado: 2015-11-07 06:15 @302
por explorer
Llamamos log a un archivo -casi siempre en modo texto-, que consiste en registros -casi siempre son líneas terminadas en uno o dos caracteres de fin de línea-, que se van añadiendo al final del archivo, poniendo la marca de tiempo al comienzo de la línea.

Entonces, el trabajo del programa consiste en:
1) abrir el log en modo añadir (usar '>>' como indicador al open().

2) cuando suceda algo que queramos que quede registrado, creamos la marca de tiempo (usando el localtime() o la función strftime() del módulo POSIX (ver ejemplo en perldoc -f localtime). El resto de la línea queda a nuestro gusto. Lo sacamos con print() dirigido al gestor de archivo abierto obtenido con el open().

3) cuando vaya a terminar el programa, cerramos el archivo con el close().

A ver si con esto te vale. Si no, insiste. Y repasa las notas que te dio el profesor, porque seguro que la solución está ahí.

Aquí hay un ejemplo.

Re: Cómo hacer log en Perl

NotaPublicado: 2015-11-12 13:54 @621
por edwardmorfa
Mil gracias, hermano.