Depurar y ejecutar diagnósticos
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Comprender qué funciones de depuración están disponibles en la plataforma Lightning
- Usar Log Inspector en Developer Console para examinar los registros de depuración.
Siga el proceso con Trail Together
¿Desea seguir el proceso con un experto a medida que realiza este paso? Mire este video que forma parte de la serie Trail Together.
(Este video comienza en el minuto 40:30, en caso de que desee rebobinar y mirar el comienzo del paso nuevamente).
Dar un paso atrás
No vamos a intentar convencerle de que la depuración en la plataforma Lightning es tan sencilla como lo es en Visual Studio. Para ser completamente honestos, ni siquiera se le acerca. La depuración en un entorno de nube mutiusuario que presenta retos exclusivos. Eso no significa que no pueda realizar trabajos de depuración y diagnóstico en la plataforma Lightning. Solo que la depuración es distinta a lo que está acostumbrado. Las buena noticia es que en este aspecto, Salesforce realizó importantes avances recientemente y habrá más con cada versión.
Su amigo, el registro de depuración
En el mundo de la plataforma Lightning, el registro de depuración es donde encontrará la mayor parte de lo que necesita para depurar y analizar su código. Ya vio cómo puede escribir en el registro de depuración. Esto se hace con algo parecido a lo siguiente.
System.debug('My Debug Message');
También puede especificar uno de los siguientes niveles de registro.
- NONE (ninguno)
- ERROR (error)
- WARN (advertencia)
- INFO (información)
- DEBUG (depuración)
- FINE (preciso)
- FINER (más preciso)
- FINEST (el más preciso)
Estos niveles se ejecutan desde el más bajo al más alto y son acumulativos. De este modo, si selecciona el nivel más alto, obtiene todos los mensajes registrados como error, advertencia, información, etc. Existen también varias categorías de registro de depuración y la cantidad de información depende del nivel de registro. Conozca más detalles sobre la depuración para diferentes usuarios consultando los vínculos en Recursos.
¿Y por qué es tan importante conocer todo esto?
Bien, sabemos que escuchó mucho sobre límites, pero la comprensión de los límites es vital para su éxito, así que confíe en nosotros. Cada registro de depuración debe tener un tamaño de 20 MB o menos. Si supera este límite, no verá todo lo que necesita. Además, cada organización puede retener hasta 1,000 MB de registros de depuración. Los registros antiguos se sobrescriben.
Como los registros de depuración son su forma principal de obtener información de depuración acerca de su aplicación, querrá estar seguro de no superar estos límites. Si nunca ve un mensaje de error, posiblemente no pueda hacer nada para solucionarlo. Consulte los vínculos en Recursos acerca de Depuración de Apex avanzada y Mejores prácticas para obtener sugerencias acerca de cómo evitar estos tipos de problemas.
Usar Log Inspector
Developer Console creció bastante en las últimas versiones. Una de sus funciones más útil es Log Inspector. Para ver cómo funciona, echemos un vistazo a la ejecución de código anónimo y la visualización de los resultados.
- En Configuración, seleccione Su nombre > Developer Console para abrir Developer Console.
- Seleccione Debug > Change Log Levels (Depurar > Cambiar niveles de registro).
- Haga clic en el vínculo Add/Change (Agregar/Cambiar) en General Trace Setting for You (Configuración de seguimiento general para usted).
- Seleccione INFO (Información) como el nivel de depuración para todas las columnas.
- Haga clic en Listo.
- Haga clic en Listo.
- Seleccione Debug > Perspective Manager (Depurar > Gestor de perspectivas).
- Seleccione All (Predefined) (Todo (Predefinido) y haga clic en Set Default (Establecer como predeterminado).
- Haga clic en Yes (Sí) para cambiar esto a su perspectiva predeterminada.
- Cierre la ventana Perspective de Developer Console.
- Seleccione Debug > Open Execute Anonymous Window (Depurar > Abrir ventana de ejecución anónima).
- Elimine el código existente e inserte el siguiente fragmento de código:
System.debug(LoggingLevel.INFO, 'My Info Debug Message'); System.debug(LoggingLevel.FINE, 'My Fine Debug Message'); List<Account> accts = [SELECT Id, Name FROM Account]; for(Account a : accts) { System.debug('Account Name: ' + a.name); System.debug('Account Id: ' + a.Id); }
- Asegúrese de que Open Log (Abrir registro) está seleccionado y haga clic en Execute (Ejecutar).
- Seleccione Debug > Switch Perspective > All (Predefined) (Depurar > Cambiar perspectiva > Todo) (Predefinido).
- Examine los resultados de las fichas Timeline (Cronología) y Executed Units (Unidades ejecutadas).
- Bajo Execution Log (Registro de ejecución), seleccione la opción Filter (Filtro), e ingrese FINE (Preciso). Debido a que establecemos el nivel de depuración en INFO para el código de Apex, no aparecerán resultados.
- Seleccione Debug > Change Log Levels (Depurar > Cambiar niveles de registro).
- Haga clic en el vínculo Add/Change (Agregar/Cambiar) en General Trace Setting for You (Configuración de seguimiento general para usted).
- Cambie DebugLevel para ApexCode y Profiling a FINEST (Más preciso).
- Haga clic en Listo.
- Haga clic en Listo.
- Seleccione Debug > Open Execute Anonymous Window (Depurar > Abrir ventana de ejecución anónima).
- Deje el código que ya está ahí y haga clic en Execute (Ejecutar).
- Bajo Execution Log (Registro de ejecución), seleccione la opción Filter (Filtro), e ingrese FINE (Preciso). La búsqueda con filtro distingue entre mayúsculas y minúsculas. Ahora verá mostrado "Mi mensaje de depuración preciso". También advertirá una diferencia de tamaño entre los dos registros más recientes en la ficha Logs.
Establecer puntos de control
Como desarrollador de .NET, estará acostumbrado a establecer puntos de interrupción en sus aplicaciones. Pero en un entorno multiusuario basado en nube, donde todos comparten recursos, permitir que cualquiera detenga la ejecución mientras se mantienen las conexiones de bases de datos abiertas es desastroso.
Los puntos de control son similares a los puntos de interrupción en que revelan mucha información detallada de la ejecución sobre una línea de código. Pero no detienen la ejecución en esa línea.
Para ver cómo funcionan, pasemos por el establecimiento de un punto de control en una línea de código que creó en una unidad anterior en Comprensión del contexto de ejecución. Si no creó el código de controlador y desencadenador para AccountTrigger, vuelva a esa unidad y complete esa sección antes de continuar.
- En Configuración, seleccione Su nombre > Developer Console para abrir Developer Console.
- Seleccione File > Open (Archivo > Abrir).
- Seleccione Classes (Clases) como tipo de entidad y AccountHandler como entidad.
- Haga clic en Abrir.
- Coloque su cursor sobre la línea 10 en el margen izquierdo y haga clic una vez. Aparecerá un punto de color rojo junto al número de línea.
- Haga doble clic en la entrada más reciente del panel Logs para abrir el registro de depuración.
- Seleccione Debug > Open Execute Anonymous Window (Depurar > Abrir ventana de ejecución anónima).
- Elimine el código existente e inserte el siguiente fragmento de código:
Account acct = new Account( Name='Test Account 3', Phone='(415)555-8989', NumberOfEmployees=30, BillingCity='San Francisco'); insert acct;
- Asegúrese de que Open Log (Abrir registro) está seleccionado y haga clic en Execute (Ejecutar).
- Haga clic en la ficha Checkpoints (Puntos de control) y haga doble clic en la primera entrada que aparece. Aparecerá Checkpoint Inspector.
- En la ficha Symbols (Símbolos), amplíe los nodos dentro de árbol de ejecución. Observe las columnas Key (Clave) y Value (Valor).
- Haga clic en la ficha Heap (Montón). Observe las columnas Count (Conteo) y Total Size (Tamaño total).
¿Qué es lo siguiente?
Ahora que tiene algunos conocimientos de los fundamentos de Apex está listo para continuar su viaje en Salesforce. Diríjase a nuestra ruta Desarrollador principiante para aprovechar sus habilidades de desarrollo existentes para crear aplicaciones rápidamente en Salesforce Platform.
Recursos
- Registros de depuración en la Guía para desarrolladores de código de Apex
- Trabajar con registros en la Guía para desarrolladores de código de Apex
- Ejemplos de uso de Log Inspector
- Establecer puntos de comprobación en código de Apex