Foros del Web » Programación para mayores de 30 ;) » Programación General »

Revision de informes

Estas en el tema de Revision de informes en el foro de Programación General en Foros del Web. Hola a todos, me asignaron un proyecto que trata sobre la revisión de logs en formato .csv y .xls La cuestión es que tenemos varios ...
  #1 (permalink)  
Antiguo 02/03/2015, 07:01
 
Fecha de Ingreso: marzo-2015
Mensajes: 5
Antigüedad: 9 años, 1 mes
Puntos: 0
Pregunta Revision de informes

Hola a todos, me asignaron un proyecto que trata sobre la revisión de logs en formato .csv y .xls
La cuestión es que tenemos varios automatismos funcionando que desempeñan distintas tareas.
Cada uno de estos automatismos crea un log en los formatos que menciono al principio del texto, con resultados "OK" y "ERROR".
Lo que pasa es que al tener tantos automatismos trabajando, es demasiado tedioso ir log a log comprobando estos resultados y que se ha ejecutado correctamente.
Tengo en mente la creación de un script que chequee, dentro de estos logs, los resultados. En consecuencia desearía que se cree un informe con estos resultados.

Si hay error lo podríamos detectar por el peso del archivo .csv/.log porque normalmente suele pasar de 1/2KB.

¿Alguien puede darme alguna idea mejor? En cuanto a la creación del script, agradecería un poco de luz a lo de que chequea el peso del archivo.

Muchísimas gracias de antemano,
Salu2!
  #2 (permalink)  
Antiguo 02/03/2015, 07:11
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Revision de informes

Pues si cada programa escribe su condición de error o éxito, no debería ser necesario probar el tamaño del log.

Ya tenés cada programa escribiendo su estado y su log particular, el resto debería ser lo más sencillo. Si acaso ayudaría que comentes en qué lenguaje estás pensando hacerlo.


Saludos.
  #3 (permalink)  
Antiguo 02/03/2015, 09:00
 
Fecha de Ingreso: marzo-2015
Mensajes: 5
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Revision de informes

Hola AlvaroG, antes de nada muchas gracias por tu respuesta.
Queda descartada la solución de comprobar el peso del archivo generado. Ya obtengo los resultados en el .csv como comenté.
En el lenguaje a utilizar está la clave... estuve pensando en hacerlo en batch, ya que tenemos algunos automatismos utilizando ese lenguaje (y además me defiendo un poco :') )
¿Cómo lo plantearías tu, AlvaroG? estoy algo verde en lo referido a la búsqueda de textos o cadenas de caracteres en batch :(

Muchísimas gracias de nuevo.
Saludos!
  #4 (permalink)  
Antiguo 02/03/2015, 12:11
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Revision de informes

Pues en batch no tengo experiencia, más allá de que sé que se puede hacer. El lenguaje que elijas dependerá de qué tengas disponible, pero pienso que un lenguaje más capaz (Python es mi predilecto) te permitirá hacer más cosas de forma sencilla. Por ejemplo, si quisieras enviar el reporte por correo, en Python solamente tendrías que escribir un par de líneas de código, mientras que en batch, en caso de ser posible, seguramente sea más complejo.
  #5 (permalink)  
Antiguo 03/03/2015, 05:05
 
Fecha de Ingreso: marzo-2015
Mensajes: 5
Antigüedad: 9 años, 1 mes
Puntos: 0
Pregunta Respuesta: Revision de informes

Hola de nuevo AlvaroG,

No me importaría utilizar Python como lenguaje, ¿qué truco/os me puedes proporcionar? Estoy con un tuto de python a vueltas

muchas gracias por tu atención, así da gusto.

Saludos! que tengas un buen día
  #6 (permalink)  
Antiguo 03/03/2015, 06:37
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Revision de informes

Pega un ejemplo del log que querés analizar, y armamos algo rápido
  #7 (permalink)  
Antiguo 03/03/2015, 06:58
 
Fecha de Ingreso: marzo-2015
Mensajes: 5
Antigüedad: 9 años, 1 mes
Puntos: 0
Información Respuesta: Revision de informes

El log que obtengo esta en formato .csv delimitado por ";".

Te muestro un ejemplo:

**********************
2015/03/02 01:10:30.75"CIERRE_ACC+CIERRE_EXP";"ACTUALIZAR/CERRAR";"1-JEHW95";"1-JEQ91D";"OK""

2015/03/02
01:11:25.77"SOLICITUD POSVENTA: FECHA FIN LIMITE SOLUCION - CIERRA LIMITE SOLUCION";"ACTUALIZAR";"1-JVWJN3";"1-JVY48E";"OK"
***********************
Muchísimas gracias por tu ayuda AlvaroG

Saludos!
  #8 (permalink)  
Antiguo 03/03/2015, 07:15
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Revision de informes

bueno, entonces por ejemplo en Python podés usar el módulo "csv" para leer el archivo línea por línea y generar una lista de los campos de cada línea.
La fecha la convertís a un objeto de fecha con datetime.datetime.strptime() (es más sencillo si necesitás hacer cálculos con esa fecha, por ejemplo ver si el programa falla x veces en una hora)

Un código rápido que solamente extrae y muestra los campos:

Código Python:
Ver original
  1. # -*- coding: utf-8 -*-
  2. import csv
  3. from datetime import datetime
  4.  
  5. with open('log.csv') as archivo_log:
  6.         lector_csv = csv.reader(archivo_log, delimiter=';')
  7.         for row in lector_csv:
  8.                 # obtenemos el primer campo hasta el punto (también podemos hacerlo hasta la comilla)
  9.                 campo_hora = row[0].split('.')[0]
  10.                 fecha_hora_registro = datetime.strptime(campo_hora, '%Y/%m/%d %H:%M:%S')
  11.                 # el estado es el último campo de la línea, quitamos las comillas por estética
  12.                 estado_registro = row[-1].strip('"')
  13.                 # aquí podrías hacer que ese OK se imprima de color verde y un estado de ERROR se imprima de color rojo, por ejemplo
  14.                 print fecha_hora_registro, estado_registro
  #9 (permalink)  
Antiguo 04/03/2015, 04:12
 
Fecha de Ingreso: marzo-2015
Mensajes: 5
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Revision de informes

Hola AlvaroG, muchas gracias por tu ayuda. Lo he estado mirando y pienso que este lenguaje es la mejor opción para hacerlo.
También tengo informes .csv separados los campos por tabulación. Busqué en información en SanGoogle sobre cómo hacer que python distinga las tabulaciones pero no he sido capaz. El "csv.excel tab" no anda...

Saludos! buenos días
  #10 (permalink)  
Antiguo 04/03/2015, 07:22
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Revision de informes

para cambiar el caracter que se usa como delimitador de campos, usa el parámetro "delimiter" de csv.reader(), tal y como lo usé arriba para indicar que se utilizara el punto y coma

Etiquetas: csv, excel, scripts, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:06.