Estoy escribiendo datos de evento en un archivo de registro en un asp.net httphandler utilizando el método File.AppendAllText. Me preocupa lo que sucederá cuando se reciban múltiples solicitudes simultáneamente. ¿AppendAllText bloquea el archivo en el que está escribiendo?Escribir en un archivo de registro en ASP.NET
7
A
Respuesta
6
no, debe tener un objeto de bloqueo estático que proteja la escritura del archivo de registro, p.
public static object LockingTarget = new object();
public void LogToFile(string msg)
{
lock(LockingTarget)
{
//append to file here as fast as possible
}
}
1
Puede usar My.Log para escribir en los archivos de registro.
Editar: Si utiliza el FileLogTraceListener, ese oyente es seguro para subprocesos.
Hacer esto también le permite controlar y configurar el registro a través del archivo web.config.
8
recomiendo el uso de la TextWriterTraceListener
en lugar de tratar de manejar este su auto.
Es muy simple de configurar y usar:
TextWriterTraceListener logListener = new TextWriterTraceListener("C:\log.txt", "My Log Name");
Trace.Listeners.Add(logListener);
Y a continuación, para iniciar la sesión algo:
Trace.WriteLine("Log this text");
Es muy simple de usar y también hay muchos tipos diferentes de los oyentes para SQL , Registro de eventos, archivo de texto, etc. Así que no tendrá que ajustar su código si desea cambiar el oyente.
Cuestiones relacionadas
- 1. ¿Qué escribir en el archivo de registro?
- 2. Escribir STDOUT & STDERR en un archivo de registro, también escribir STDERR en la pantalla
- 3. escribir en el registro de IIS desde una aplicación ASP.NET
- 4. Escribir archivo en el servidor web - ASP.NET
- 5. cómo escribir en un archivo en emacs
- 6. ¿Formato para escribir un archivo de registro JSON?
- 7. Cómo escribir un registro de errores o una excepción en un archivo en java
- 8. Escribir un archivo en iOS
- 9. ¿Escribir NSData en un archivo?
- 10. Escribir en un archivo en Monotouch
- 11. Escribir en un archivo CSV en Node.js
- 12. ¿Cómo escribir en un archivo en PHP?
- 13. Escribir en un archivo XML en Java
- 14. escribir en un archivo en Perl
- 15. Escribir en un archivo en Clojure
- 16. ¿Cómo escribir un flujo en un archivo?
- 17. Errores de registro en un archivo
- 18. Escribir en un archivo de forma asíncrona
- 19. ¿Dónde puedo escribir un archivo temporal desde ASP.NET?
- 20. Log4j Inicio de sesión en un archivo de registro compartido
- 21. Crear un archivo de registro en una aplicación de iOS
- 22. ¿Escribir un archivo .htaccess en PHP?
- 23. Cómo escribir valores vectoriales en un archivo
- 24. MATLAB - escribir imagen en un archivo eps
- 25. Crear y escribir líneas en un archivo
- 26. ¿Podemos escribir una Hashtable en un archivo?
- 27. UnicodeEncodeError al escribir en un archivo
- 28. Creando un archivo .config personalizado en asp.net
- 29. Cómo escribir cadenas unicode en un archivo?
- 30. ¿Cómo ver un archivo escribir en PHP?
Preste atención a IIS WebGarden. AFAIK tienes diferentes procesos -> diferentes objetos estáticos. Entonces, podrías tener un conflicto de simultaneidad. –
Fabrizio tiene razón, todas las apuestas están apagadas si está usando una granja de servidores web; sugiero iniciar sesión en la base de datos en ese caso. ¡Probablemente no quieras que 50 servidores intenten escribir en el mismo archivo de texto de todos modos! –