• Publicidad

Capturar STDOUT y STDERR

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Capturar STDOUT y STDERR

Notapor raul_javier » 2012-10-07 17:55 @788

Buen día, señores.

Espero que me puedan ayudar en este asunto.

¿Existe alguna forma de capturar el STDOUT o STDERR en una variable y volcar su contenido en alguna variable? Me explico...

DBD::mysql::db do failed: Incorrect number of arguments for PROCEDURE ihome.INSERT_QUEUE_JOIN; expected 7, got 8 at /usr/lib/perl5/site_perl/5.8.8/DB_UTIL.pm line 171.

Este es un error que se ve desde el STDOUT o STDERROR. Mi idea es colocarlo en una variable para poder sacar un log más provechoso.

sub execQuery{
my ($self, $query) = @_;
my $dbh = $self->getDefaultConnection();
my $result = $dbh->do($query);
if ( $dbh->err() ) {
return "DB_ERROR code: " . $dbh->err() . " Error Mgs: " . $dbh->errstr();
}
return $result
}

En caso de error, la variable $result tiene un contenido parecido a este:

DB_ERROR code: 1318 Error Mgs: Incorrect number of arguments for PROCEDURE salon.update_producto

Pero el STDOUT o STDERR tiene esta información:

DBD::mysql::db do failed: Incorrect number of arguments for PROCEDURE salon.update_producto; expected 7, got 8 at /usr/lib/perl5/site_perl/5.8.8/DB_UTIL.pm line 169.

Saludos cordiales.
raul_javier
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2012-10-07 17:14 @760

Publicidad

Re: Capturar STDOUT y STDERR

Notapor explorer » 2012-10-07 18:11 @799

Bienvenido a los foros de Perl en Español, raul_javier.

El DBI, por defecto, activa la opción 'PrintError', que hará un warn() (salida de un mensaje por el STDERR) de las advertencias que ocurran en la ejecución de las consultas a la base de datos.

Prueba a desactivarlo.

En el manual de DBI, busca por "PrintError", donde te indica un procedimiento para capturar esos mensajes, si les quieres manipular antes de sacarlos o guardarlos en el registro.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 26 invitados