-
Notifications
You must be signed in to change notification settings - Fork 2
Fase II Log
Johan Villegas edited this page Sep 18, 2018
·
2 revisions
Puede visualizar los commit de esta fase : Branch Log
Para realizar una implementacion de log, debemos entender para que lo necesitamos y con que fin lo vas a utilizar, para ello, en esta practica, vamos a implementarlo para capturar los errores de excepciones y escribirlo en un archivo.
debemos:
- Realizar la configuración de captura de excepciones en
HttpGlobalExceptionFilter.c**s
- Vamos a incorporar el paquete Nlog.Web.AspNetCore en nuestro proyecto API. dicho paquete nos facilita la configuración del guardado de los registros.
- Añadir en la raíz del proyecto, el archivo llamado
nlog.config
, el cual tiene la configuración de como va a realizar la estructura y la ruta de archivo Log.
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="info"
internalLogFile="c:\temp\internal-nlog.txt">
<!-- enable asp.net core layout renderers -->
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
</extensions>
<!-- the targets to write to -->
<targets>
<!-- write logs to file -->
<target xsi:type="File" name="allfile" fileName="c:\temp\nlog-all-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" />
<!-- another file log, only own logs. Uses some ASP.NET core renderers -->
<target xsi:type="File" name="ownFile-web" fileName="c:\temp\nlog-own-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
</targets>
<!-- rules to map from logger name to target -->
<rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="allfile" />
<!--Skip non-critical Microsoft logs and so log only own logs-->
<logger name="Microsoft.*" maxLevel="Info" final="true" />
<!-- BlackHole without writeTo -->
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
</nlog>
- Para terminar con el archivo
nlog.config
debemos ir a las propiedades y asignarle el siguiente valor.
- ya tenemos configuración de Nlog, pero es necesario para finalizar el proceso, tener presente que la aplicación todavía no lo esta implementando, para eso debemos ir la clase
program.cs
y realizar lo siguiente.
- Como podemos ver en el paso 5 el LogLevel utilizar el espacio Trace, que indica mensajes más detallados, vamos al archivo
appsettings.json
para realizar la actualización.
{
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Information"
}
}
}
- Con eso ya podemos realizar una prueba, he ir a la rute C:\temp donde se visualizaran los archivos Log
Autor: Johan Villegas - Ingeniero de Sistemas