Pregunta:
Fecha: 12-09-2016 06:05:34
(En Español)
Pero quisiera que me ILUSTRARAN DE CUAL ES LA FORMA DE TRABAJO E IMPLEMENTACIÒN DE ESTE RECURSO EN UN PROYECTO GRANDE O MEDIANA ENVERGADURA.
INICIALMENTE EL TENGO LAS SIGUIENTES PREMISAS
- LOS VISITANTES DE MI WEB PUEDEN REGISTRARSE. ---> Ami parecer es aquí donde debo iniciar el registro de sus actividades o CREACION DE UNA TABLA EN MI BD que almacene esta data en cada logueo.
-Cual deberia ser la forma de administrar esta informacion ?
-La info antigua se depura se almacena?
Desde ya gracias por sus aportes. Votos: 3 - Respuestas: 7 - Vistas: 47 Compartir en: Google Facebook Twitter LinkedIn Link
¿Cómo se desarrolla el LOG para el registro de actividades en una página?[Resuelta]
Hola saludos a toda la comunidad , voy a iniciar el registro de actividades mediante LOG que registren actividades como eliminaciòn ,edicion o ingreso de contenidos.Pero quisiera que me ILUSTRARAN DE CUAL ES LA FORMA DE TRABAJO E IMPLEMENTACIÒN DE ESTE RECURSO EN UN PROYECTO GRANDE O MEDIANA ENVERGADURA.
INICIALMENTE EL TENGO LAS SIGUIENTES PREMISAS
- LOS VISITANTES DE MI WEB PUEDEN REGISTRARSE. ---> Ami parecer es aquí donde debo iniciar el registro de sus actividades o CREACION DE UNA TABLA EN MI BD que almacene esta data en cada logueo.
-Cual deberia ser la forma de administrar esta informacion ?
-La info antigua se depura se almacena?
Desde ya gracias por sus aportes. Votos: 3 - Respuestas: 7 - Vistas: 47 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 12-09-2016 10:03:54 Hola Dyan, lo que tu quieres hacer también es conocido como log o bitácora.
El nivel de registro lo defines tu, pero por lo general se registran todos los cambios en la base de datos y eventos de interes.
Cambios en la base de datos: INSERT, UPDATE, DELETE
Lo que te debe interesa registrar es: quien lo hizo, cuando lo hizo, por medio de que método o sentecia lo hizo, etc.
Saludos Votos: 2 - Link respuesta -
Fecha: 14-09-2016 07:20:21 Gracias gustavo.
Mi pregunta va mas por el saber como se maneja en un proyecto de grande o media envergadura.
se utiliza algun metodo o si debo considerar algo en especifico.
Agradecería que comentaran sus experiencia en este tipo de proceso. Votos: 0 - Link respuesta -
Fecha: 17-09-2016 11:29:15 DYAN
Buenas tardes
Si usas PHP con programación ORIENTADO A OBJETOS:
try{ //Ejecuta código que puede llegar a tener error. }catch(Exception $e){ //Recupera un error de haberlo en lo anterior. }
En cambio utilizas PHP por método PROCEDURAL
if(xx){ //Ejecuta Mensaje OK } else { //Ejecuta Mensaje ERROR }Votos: 0 - Link respuesta -
Fecha: 17-09-2016 12:23:32 Hola Dyan: estoy de acuerdo con Antuan, como base tienes que pensar en desarrollar orientado a objeto que te permite ser mas eficiente y reducir mucho tu código basura teniendo en cuenta que los demas paradigmas anteriores a este, estan ya obsoletos, sin embargo, (y esto es muy a mi personal criterio), yo no discrimino los proyectos por tamaño, pues todos y cada uno tiene su propia complejidad y seguramente con el tiempo crecerá mucho mas de lo que en su momento fue el inicio.
Tienes que (y esto no es opción) entender el funcionamiento del MVC (Método de Modelo Vista Controlador) personalmente no encuentro forma de registrar los movimientos de la base de datos, sin antes crear un modelo que integre las funciones básicas de insertar, modifica, eliminar, de forma que sean operaciones centralizadas y cada vez que suceda un error propio de la base de datos capturarlo y enviarlo al área correspondiente, que por supuesto sera un archivo plano que deberá estar en un directorio aislado, recomiendo que este sea un archivo individual por fecha, de forma que puedas verificar por cada dia el momento de los mensajes de error o warnings que quieras registrar, por cierto de igual forma una función que genere el registro de LOG, que sera llamada por cada uno de los eventos de base de datos y de conexión o inicio de sesión.
Por ultimo y para no inventar el agua azucarada, te invito a echarle un vistazo a CodeIgniter, (https:www.codeigniter.com) es un framework basado en php nativo, simple, liviano, sin complicaciones, con una curva de aprendizaje de aproximadamente una semana, ademas utiliza MVC y funciona con PHP7, la migración a la siguiente versión es tan fácil como reemplazar un directorio y lo que es mas importante NO necesita una instalación especial, es simple copiar y pegar.
si eres como yo, que te gusta la creatividad e individualidad y al utilizar un framework seras mucho mas productivo y desarrollaras en menos tiempo.
CodeIgniter te proporciona la plataforma perfecta para que personalices tus aplicaciones y dejes rienda suelta a tu creatividad, por ultimo, el proceso de vaciado del LOG puedes automatizarlo con un proceso que ejecute el propio servidor, marcando la distancia en días y filtrando por fecha.
Espero que pueda haber servido de ayuda, un saludo desde Guatemala. Votos: 3 - Link respuesta -
Fecha: 19-09-2016 06:17:49 Buenos días, muy buenas las respuestas pero lo que creo que está preguntando es hacer un log de las transacciones o lo que yo llamo auditoría.
El log es, creo más a nivel de servidores o de cualquier otro error o movimiento que se produzca, ej, inicialización de motores de bases de datos, arranque de los agentes, inicio y final de backup, tanto de bbdd como de los archivos, etc
En el caso de try - catch solo capturaría los errores que se poroduzcan, es decir, si está todo bien, al catch no iría o entraría nunca.
Siguiendo con mi idea, se pueden hacer de dos maneras, a nivel de base de datos o a nivel de programación. A nivel de base de datos con triggers y a nivel de programación, por cada actualización en la base, se debe insertar el movimiento que se realizó.
Propuesta, crear tantas tablas como auditoría se necesitan (porque no todas las tablas necesitan este nivel de auditoría), la estructura de estas tienen que ser similar más el usuario que lo hizo, la hora y que tipo de acción realizó.
Ej, si es un insert, en la tabla de auditoría, grabar todos los datos del instert, la accion (en este caso insert), el usuario y la hora.
Eliminación, lo mismo, el registro que se eliminó, quien, a que hora y la acción (eliminación)
Para los casos de actualización, es una doble entrada, guardar como estaba antes de actualizar el registro y como quedó despues de la modificación.
En cuanto a que tipo de proyectos, no creo que sea importante si es grande o no, creo que depende el nivel de seguridad en cuanto a los cambios y saber, si llegara a exisitir un problema, quien hice qué a que hora.
Si se hace con triggers, es más fácil el mantenimiento porque me olvido de hacer algo por código y siempre se va a disparar. Por código es más fácil implementarlo pero tengo la posibilidad de olvidarme en alguna página, programa, script agregar dicha auditoría
Saludos
DIEGO Votos: 5 - Link respuesta -
Fecha: 09-01-2017 22:06:48 Si vas a desarrollar un log en PHP desde cero, por favor sigue los estándares:
PSR Logs
Hay logs muy buenos que ya implementan este estándar como Monolog que es el que utilizan frameworks como Symfony.
Con un logger puedes almacenar diferentes tipos de eventos y clasificarlos adecuadamente además de que puedes configurar su funcionamiento para diferentes ambientes.
Ya que tengas los logs puedes utilizar algún software especializado para análisis de big data (Splunk, New Relic, etc.) y hacer reportes muy interesantes o incluso monitorear el comportamiento de tu aplicación. Votos: 4 - Link respuesta -
Fecha: 08-05-2017 05:24:32 Hola, en mi caso particular yo agrego a todas las tablas de la base de datos 4 campos de auditoria, estos son: creadoPor, fechaCreacion, modificadoPor, fechaModificacion; con esos 4 campos tu eliges la forma en que se pueden actualizar dichos campos, sea por una clase en php, a nivel de programación individual por funciones (sino es muy grande tu aplicación) o por medio de los triggers en MySQL.
Para la eliminación puedes crear una tabla aparte que antes de entrar a la funcion de eliminación, vaya a otra función de guardar o insertar; le indiques quien y qué estas borrando y los campos de auditoria, que pueden ser: eliminadoPor fechaEliminacion.
Saludos. Votos: 2 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
