![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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... |
#2
|
||||
|
||||
![]() 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... |
#3
|
||||
|
||||
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" |
#4
|
||||
|
||||
El archivo este de log, se pinta normal
Cita:
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... |
#5
|
||||
|
||||
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 - |
#6
|
||||
|
||||
En realidad
Cita:
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 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... |
#7
|
||||
|
||||
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 - |
#8
|
||||
|
||||
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:
Cita:
En Caso de Error lo haría así más o menos Cita:
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#9
|
||||
|
||||
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 ![]()
__________________
No puedo dormir con las lágrimas del mundo cayendo sobre mi... |
#10
|
||||
|
||||
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 - |
#11
|
||||
|
||||
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" |
#12
|
||||
|
||||
El número era solamente una expresión no literal
Cita:
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... |
#13
|
||||
|
||||
Cita:
![]() Cita:
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 - |
#14
|
||||
|
||||
Si no te dan los recursos apropiados... ¿cómo lo vas a hacer?, milagros no se puede, salvo que seas un Dios
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
|
|
![]() |
||||
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 |
![]() |
|