.net 3.5 iniciando sesión en un archivo desde web.config
Frecuentes
Visto 7,625 veces
1
Tengo un sitio web .net 3.5 que funciona bien cuando lo ejecuto en Visual Studio. Sin embargo, cuando lo ejecutamos en IIS hay algunos errores. Lo que me gustaría hacer es agregar algún tipo de registro a web.config para que registre lo que está sucediendo en el sitio web en un archivo. ¿Alguna buena manera de hacer esto? Gracias
4 Respuestas
2
Si su código genera información de registro usando las funciones integradas de .NET System.Diagnostics.Trace, puede controlar y configurar a dónde van esos rastros usando su archivo web.config.
En su código, use llamadas como
System.Diagnostics.Trace.TraceInformation("Your log info here");
En su web.config, configure un detector de seguimiento de registro de eventos como este:
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="myListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="TextWriterOutput.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Esto enrutará la salida de seguimiento de su programa al archivo de texto TextWriterOutput.log
Más información aquí: http://msdn.microsoft.com/en-us/library/system.diagnostics.tracelistener.aspx
Respondido el 12 de junio de 12 a las 17:06
0
No entiendo lo que quiere decir con "pasarle a un archivo", pero mi forma preferida de agregar el registro es usar NRegistro.
NLog está disponible a través de NuGet, es potente y bastante fácil de configurar. Puede tener diferentes acciones de registro para diferentes tipos de errores. Por ejemplo, registro la mayoría de las cosas en un archivo, pero también tengo errores fatales al enviar un correo electrónico al equipo de operaciones, para muchas de mis aplicaciones web que usan NLog.
Si eso no es lo que está buscando, actualice su pregunta para ser más claro sobre el problema que desea resolver.
Respondido el 12 de junio de 12 a las 15:06
0
Uno de los marcos de registro más poderosos (en mi opinión) es ELMAH. Puede registrar errores automáticamente y también puede implementar sus propios disparadores para almacenar información en los registros.
Lo mejor de todo es que puede implementarlo sin cambios en el código base. Solo se necesitan cambios en web.config o machine.config.
Respondido el 12 de junio de 12 a las 15:06
0
Realmente debería usar un buen marco de registro como NLog (como se sugiere en otro lugar). Pero si solo necesita algo rápido y sucio, considere agregar un manejo simple de errores al evento Global.asax Application_Error, así (sin memoria):
protected void Application_Error(object sender, EventArgs e)
{
// Get error and log objects
var exception = Server.GetLastError();
var log = new System.IO.StreamWriter("c:\\path\\to\\log.txt");
// Write out what you need and close the file
log.WriteLine(exception.Message);
log.Close();
// Redirect to error page ..
}
Recuerde asegurarse de tener los permisos necesarios para abrir/crear el archivo de registro también.
Respondido el 12 de junio de 12 a las 17:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c# .net iis logging web-config or haz tu propia pregunta.
¿Cuál es la ruta donde se escribirá el archivo de registro? - lhunath
Probablemente el directorio bin de la aplicación o los datos de la aplicación del usuario. Probablemente pueda especificar una ruta de nombre de archivo completa en la cadena initializeData. - dthorpe