Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-01-2012
Avatar de winzo
winzo winzo is offline
Miembro
 
Registrado: abr 2008
Ubicación: DF
Posts: 281
Poder: 17
winzo Va por buen camino
Archivo de trazas(log) gigantescos

Hola a todos, espero estar poniendo correctamente el hilo en el tema adecuado.

Mi historia es la siguiente:

Yo trabajo en un banco, en el área de sistemas, ultimamente me toca hacer revisiones de incidencias, normalmente no es algo difícil si en la incidencia proporcionan los datos suficientes como para emular semejante error y seguir mis trazas a un nivel local, hasta aquí todo bien.

El problema es cuando ocurre un problema en el ambiente productivo y que tienes que rastrear; Aquí tenemos un log clásico que te genera los datos típicos(fecha, archivo, descripcion, etc...), pero el problema, como ya se peuden imaginar, es que como todos sabemos, los archivos de trazas se van generando horizontalmente y linea por linea, describiendo lo que va ocurriendo en un servidor. Pero, si a las vez entran 1000 personas, se vuelve tremendamente difícil seguir una sola transacción en especial, por no decir que en algunos casos es imposible.


A esto, he pensado algunas soluciones, como por ejemplo, agregar la IP en cada línea del log de quien esta generando la transaccion(lo cual no he logrado hacer aún), pero el problema no se disuelve completamente.

Alguien mencionó un legendario framework(spring) el cual me contó te podía ordenar la transacción en un bloque todo junto y muy legible, pero nadie ha sabido darme razón de tal cosa.

Soy un programador en Java, pero no lo puse en ese tema porque me parece que en cualquier aplicación se puede enfrentar exactamente la misma disyuntiva.


Alguna idea?
Alguna solución?

Bueno, me sirvió de cualquier forma para quitarme el estrés, salduos....
__________________
No puedo dormir con las lágrimas del mundo cayendo sobre mi...
Responder Con Cita
  #2  
Antiguo 18-01-2012
Avatar de winzo
winzo winzo is offline
Miembro
 
Registrado: abr 2008
Ubicación: DF
Posts: 281
Poder: 17
winzo Va por buen camino
Unhappy No hay ideas?

No hay ideas o es que lo puse en el tópico equivocado?
__________________
No puedo dormir con las lágrimas del mundo cayendo sobre mi...
Responder Con Cita
  #3  
Antiguo 18-01-2012
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Hola Winzo, te espongo una idea, de antemano decirte que no trabajo con java, así que pueda decir alguna burrada, pero por lo que comentas lo que quieres es que cuando, se produce un error, si es así, puedes aprovechar en lo que en delphi sería un Try Exect end, para rellenar cunado se produce la exepcion en el log, si no es el caso, lo logico, es que rellenaras el log, en la salida de la oeracion, con los datos normales, más hora de inicio y hora final fecha, etc..

Espero haberte ayudado.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #4  
Antiguo 18-01-2012
Avatar de winzo
winzo winzo is offline
Miembro
 
Registrado: abr 2008
Ubicación: DF
Posts: 281
Poder: 17
winzo Va por buen camino
El archivo este de log, se pinta normal

Cita:
Empezado por José Luis Garcí Ver Mensaje
Hola Winzo, te espongo una idea, de antemano decirte que no trabajo con java, así que pueda decir alguna burrada, pero por lo que comentas lo que quieres es que cuando, se produce un error, si es así, puedes aprovechar en lo que en delphi sería un Try Exect end, para rellenar cunado se produce la exepcion en el log, si no es el caso, lo logico, es que rellenaras el log, en la salida de la oeracion, con los datos normales, más hora de inicio y hora final fecha, etc..

Espero haberte ayudado.
Mi archivo de log pinta todas las entradas de usuario, desde comentarios basicos para ir siguiendo el flujo de actividades de cada usuario, hasta trazas de errores como dices, incluso sale la fecha, hora, minuto y segundo de la transaccion.

El problema es que cuando se genera un error y hay que rastrear el flujo del usuario para llegar a él, ya que entran a esta apliación miles de personas al mismo tiempo, lo que provoca que las trazas del archivo salgan mezcladas y sea difícil de seguir tal flujo, incluso imposible.
__________________
No puedo dormir con las lágrimas del mundo cayendo sobre mi...
Responder Con Cita
  #5  
Antiguo 18-01-2012
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,
entiendo que para seguir la traza de cualquier cosa, tendrás al menos algún campo común en cada fila; es decir, fecha, acción, resultado, ... y seguramente tendrás un usuario que realiza cada acción/transacción.

Si trabajas en un banco, tendrás un host ( Z90, o similar). El editor del host (no recuerdo el nombre) tiene una versión para windows. También hay otros editores ( no recuerdo cuales, podría ser el ultraedit o el notepad++ ) que permiten en un fichero de texto filtrado horizontal, es decir, ocultar o mostrar sólo aquellas líneas que tengan el patrón que buscas ( ip, usuario, nº de transacción, ...) . En este caso deberías buscar por ese lado, ya que además estos editores te permiten trabajar con ficheros grandes. En caso de que no encuentres esta utilidad, podrías cargar el fichero en excel y filtrar, o en su defecto, si es muy grande el fichero, cargar las líneas en una bbdd tipo acces y utilizar las opciones de filtrado que ofrece, que para este caso suelen ser suficientemente potentes.

Espero haberte ayudado.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #6  
Antiguo 18-01-2012
Avatar de winzo
winzo winzo is offline
Miembro
 
Registrado: abr 2008
Ubicación: DF
Posts: 281
Poder: 17
winzo Va por buen camino
En realidad

Cita:
Empezado por fjcg02 Ver Mensaje
Hola,
entiendo que para seguir la traza de cualquier cosa, tendrás al menos algún campo común en cada fila; es decir, fecha, acción, resultado, ... y seguramente tendrás un usuario que realiza cada acción/transacción.

Si trabajas en un banco, tendrás un host ( Z90, o similar). El editor del host (no recuerdo el nombre) tiene una versión para windows. También hay otros editores ( no recuerdo cuales, podría ser el ultraedit o el notepad++ ) que permiten en un fichero de texto filtrado horizontal, es decir, ocultar o mostrar sólo aquellas líneas que tengan el patrón que buscas ( ip, usuario, nº de transacción, ...) . En este caso deberías buscar por ese lado, ya que además estos editores te permiten trabajar con ficheros grandes. En caso de que no encuentres esta utilidad, podrías cargar el fichero en excel y filtrar, o en su defecto, si es muy grande el fichero, cargar las líneas en una bbdd tipo acces y utilizar las opciones de filtrado que ofrece, que para este caso suelen ser suficientemente potentes.

Espero haberte ayudado.

Un saludo


Utilizo ultraedit como dices, y si, es muy útil, el problema como he dicho es que a veces es gigantesco este log no tiene una distinción particular, como ejemplo te pongo una línea del log:


Código:
ExecuteThread: '14' for queue: 'weblogic.kernel.Default'->2012-01-18 17:11:54,127 DEBUG gfi.miscuentas.controller.SeguridadFilter.doFilter(182): MENSAJEEEEEEEEEEEEEE
Como has podido observar nos entrega fecha, la clase que hizo y cosas por el estilo, lamentablemente no hay un elemento que te permita dicernir de quien hizo que cuando lo ves una línea como esta junto a otras 100000 de personas que hciieron exactamente lo mismo, se puede dar seguimiento, pero es extremadamente complicado y tedioso, basados en el ejmplo que proporcioné.

Busqué en las plantillas que existen para generar un log(pensando en poner la IP al inicio del log), pero no la hay.
__________________
No puedo dormir con las lágrimas del mundo cayendo sobre mi...
Responder Con Cita
  #7  
Antiguo 18-01-2012
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Entiendo que es un desarrollo vuestro, o de algún area de desarrolos interna. Es difícil que os incluyan en el log los datos de usuario, ip, o lo que necesiteis para poder seguir la traza ??

Otra solución puede pasar por hacer un programa que extraiga la información que necesitas a otro fichero y puedas tratarla. Ahora, si no tienes la información, difícilmente podrás ratrearla.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #8  
Antiguo 18-01-2012
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Por lo que entiendo es que recoges la información en un único punto, personalmente, pienso que deberías controlar el transito de información finalizada, y no por proceso, se que puede parecer engorroso, pero, el tema del usuario lo obtienes al entrar, guardándolo en un variable, por lo que puedes enviarlo al finalizar o al producirse un error, de todas maneras, creo que es mejor hacer un log para las gestiones y otro para lo errores, con oque obtienes 1 único registro en el log por operación.

supongamos que tu log guarde (es un Suponer)
Cita:
Fecha H.Ini. Usuario Of. CCC Acción
------------ ------ ------ ----------- ---- --------------------------- ---------------------------------------------
12/12/2011, 10.55, A125SD5F, 185, 1252/2289/55/0211881287, Entrada en Cuenta
...(Otras operaciones)
12/12/2011, 10.58, A125SD5F, 185, 1252/2289/55/0211881287, Abono 150.28€
...(Otras operaciones)
12/12/2011, 10.59, A125SD5F, 185, 1252/2289/55/0211881287, Registro del Abono y Salida
Lo que yo te propongo sería más o menos así
Cita:
Fecha H.Ini. H.Fin. Usuario Of. CCC Entrada Salida Acción
------------ ------ ------ ----------- ---- --------------------------- ------, -----, ---------------------------------------------
12/12/2011, 10.55, 10.59, A125SD5F, 185, 1252/2289/55/0211881287, OK OK Abono 150.28€
Así permitimos crear un único registro, manteniendo los datos en variables hasta la canalización

En Caso de Error lo haría así más o menos

Cita:
Fecha H.Ini. H.Error Usuario Of. CCC Acción
------------ ------ ------- ----------- ---- --------------------------- ---------------------------------------------
12/12/2011, 10.55, 10.59, A125SD5F, 185, 1252/2289/55/0211881287, Error al hacer abono de 150.28€, registro no cerrado
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #9  
Antiguo 18-01-2012
Avatar de winzo
winzo winzo is offline
Miembro
 
Registrado: abr 2008
Ubicación: DF
Posts: 281
Poder: 17
winzo Va por buen camino
Ya lo había pensado.

José Luis, fjcg02.

Les agardezco muchos las ideas, en realidad ya había pensado las opciones que proporcionan(sobre todo la de hacer un miniprograma filtrador).

El problema de esto es que al ser una aplicación corporativa(un banco) el número de desarroladores es muy grande(no creo conocer ni al 10%), y tendría que imponerles la norma de agreguen al inicio de sus log siempre la ip, el user o alguna clave, eso es algo utópico en la práctica, esta de sobra las razones, se intuyen al mencionar el número de desarrolladores que somos, sin mencionar los que llegan y los que se van, el personal externo, etc...

En java(desconozco si en otras plataformas), hay plantillas de logueo, la que les mostré usa la fecha, hora, clase utilizada y mensaje, esto puede variar en algunos parámetros, el problema viene de que en las plantillas existentenes no hay forma de identificar la ip, usuario o cosas por el estilo automaticamente(como vosotros lo planteasteis inicialmente).

Escensialmente ese es el problema, que no se me ocurre otra forma para automatizar esto y agregar datos identificadores del tipo que ya he mencionado , tampoco podemos confiar ciegamente en los desarrolladores y su buena voluntad de hacer un buen log; Así que, el problema sigue vigente.
__________________
No puedo dormir con las lágrimas del mundo cayendo sobre mi...
Responder Con Cita
  #10  
Antiguo 19-01-2012
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola de nuevo,
respecto al nº de desarrolladores que participan en el proyecto, es un poco absurdo ( perdona la expresión). Habrá un analista al que poder dirigirse para que analice esta situación y pueda proponer a los arquitectos dónde y cómo incluir el logueo de trazas. Seguramente se podrán activar y desactivar, y si hasta me apuras, activar para las operaciones de un usuario exclusivamente. Lo de los arquitectos lo digo porque seguramente la aplicación se desarrollará bajo una arquitectura adaptada a vuestro entorno, y los desarrolladores trabajarán en la capa de desarrollo utilizando funciones generales.
Si no es factible, lo tienes muy claro. Cuando haya una incidencia, les respondes que no puedes saber qué ha pasado y "santaspascuasamén", a otra cosa mariposa, ya que no puedes con la información que tienes sacar ninguna conclusión.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #11  
Antiguo 19-01-2012
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Winzo, en Java como en los otros lenguajes puedes usar las variable no?, esas variables, pueden usarse y meter los datos que no tienes en la plnatilla que comentas, dentro del mensaje, en corchetes o algo así., de todas maneras, no se puede poner en la configuración de cada terminal, los datos que necesitas, para exportarlos al log?
Dentro de java no hay ningún parametro/función que te de la ip?

Vamos, son ideas solamente, ya te comente que no conozco java.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #12  
Antiguo 19-01-2012
Avatar de winzo
winzo winzo is offline
Miembro
 
Registrado: abr 2008
Ubicación: DF
Posts: 281
Poder: 17
winzo Va por buen camino
El número era solamente una expresión no literal

Cita:
Empezado por fjcg02 Ver Mensaje
Hola de nuevo,
respecto al nº de desarrolladores que participan en el proyecto, es un poco absurdo ( perdona la expresión). Habrá un analista al que poder dirigirse para que analice esta situación y pueda proponer a los arquitectos dónde y cómo incluir el logueo de trazas. Seguramente se podrán activar y desactivar, y si hasta me apuras, activar para las operaciones de un usuario exclusivamente. Lo de los arquitectos lo digo porque seguramente la aplicación se desarrollará bajo una arquitectura adaptada a vuestro entorno, y los desarrolladores trabajarán en la capa de desarrollo utilizando funciones generales.
Un saludo
Básicamente el consejo es que le heche la pelota a otros no? mmmm, no me gusta la idea.

Cita:
Empezado por fjcg02 Ver Mensaje
Si no es factible, lo tienes muy claro. Cuando haya una incidencia, les respondes que no puedes saber qué ha pasado y "santaspascuasamén", a otra cosa mariposa, ya que no puedes con la información que tienes sacar ninguna conclusión.
Tú que opinarías de un empleado de tu banco, especializado en esto, y al cual le pagas por resolver incidencias(entre otras cosas), si te dice "no sé que ha pasado, esos millones no son rastreables", menuda respuesta que me darían.
__________________
No puedo dormir con las lágrimas del mundo cayendo sobre mi...
Responder Con Cita
  #13  
Antiguo 20-01-2012
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Cita:
Empezado por winzo Ver Mensaje
Básicamente el consejo es que le heche la pelota a otros no? mmmm, no me gusta la idea.
No, pero cada uno deberá cargar con sus responsabilidades, no?. Si es toda la responsabilidad tuya, ya estás tardando en incluir los campos que te permitan trazar las operaciones ¿¿??



Cita:
Empezado por winzo Ver Mensaje
Tú que opinarías de un empleado de tu banco, especializado en esto, y al cual le pagas por resolver incidencias(entre otras cosas), si te dice "no sé que ha pasado, esos millones no son rastreables", menuda respuesta que me darían.
Hombre, no se puede esperar de un obrero que cabe zanjas con una pala y un cubo de playa. Tendrá que tener un martillo neumático y una excavadora...

Quiero decir que si no tienes indentificada cada acción en el log.... ni un adivino sabrá nunca qué ha pasado... o tú sí ? Si has respondido que sí, es que no nos has contado algo bien o se te ha escapado algún detalle que no nos has explicado.

Un saludo
PD: mira a ver si nos puedes aportar más datos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #14  
Antiguo 20-01-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si no te dan los recursos apropiados... ¿cómo lo vas a hacer?, milagros no se puede, salvo que seas un Dios
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
llamar un archivo asi '192.168.1.1:\ruta\archivo.frf' IVAND Varios 5 12-04-2008 16:18:54
no puedo abrir un archivo con ShellExecute si el archivo es variable belpab API de Windows 2 28-11-2007 16:24:22
Filosofia/Manejo archivo "cds" Archivo.cds!! Martín González Conexión con bases de datos 1 03-05-2007 00:14:23
envio de archivo con el componente envio de archivo joel20 JAVA 1 04-08-2006 10:28:53
Archivo .dcu Disma Varios 4 12-01-2006 12:24:26


La franja horaria es GMT +2. Ahora son las 08:59:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi