Tôi đang ghi dữ liệu sự kiện vào tệp nhật ký trong một người đăng ký asp.net bằng cách sử dụng phương thức File.AppendAllText. Tôi quan tâm đến những gì sẽ xảy ra khi nhiều yêu cầu được nhận đồng thời. AppendAllText có khóa tệp mà nó đang ghi vào không?Viết vào một tệp nhật ký trong ASP.NET
7
A
Trả lời
6
không, bạn nên có đối tượng khóa tĩnh bảo vệ ghi nhật ký tệp, ví dụ:
public static object LockingTarget = new object();
public void LogToFile(string msg)
{
lock(LockingTarget)
{
//append to file here as fast as possible
}
}
1
Bạn có thể sử dụng My.Log để ghi vào tệp nhật ký.
Chỉnh sửa: Nếu bạn sử dụng FileLogTraceListener, trình nghe đó là an toàn chỉ.
Làm điều này cũng cho phép bạn kiểm soát và định cấu hình ghi nhật ký thông qua tệp web.config.
8
Tôi khuyên bạn nên sử dụng TextWriterTraceListener
thay vì cố gắng tự quản lý bản thân này.
Nó rất đơn giản để cài đặt và sử dụng:
TextWriterTraceListener logListener = new TextWriterTraceListener("C:\log.txt", "My Log Name");
Trace.Listeners.Add(logListener);
Và sau đó đăng nhập cái gì đó:
Trace.WriteLine("Log this text");
Nó rất đơn giản để sử dụng và cũng có rất nhiều loại khác nhau của thính giả cho SQL , Nhật ký sự kiện, tệp văn bản, v.v. Vì vậy, bạn sẽ không phải điều chỉnh mã của mình nếu muốn thay đổi người nghe.
Các vấn đề liên quan
- 1. Viết nhật ký vào tập tin
- 2. log4Net tệp nhật ký không viết
- 3. ghi vào nhật ký IIS từ một ứng dụng ASP.NET
- 4. Cách viết nhật ký lỗi hoặc ngoại lệ vào tệp trong java
- 5. Lỗi nhật ký trong một tệp
- 6. Viết ngoại lệ cho Tệp nhật ký Windows
- 7. Định dạng để viết tệp nhật ký JSON?
- 8. Nhật ký nhắc lệnh Windows vào một tệp
- 9. Cách viết từ Java vào Nhật ký sự kiện Windows?
- 10. Lỗi ghi nhật ký trong ASP.NET MVC
- 11. Viết QNetworkReply vào một tệp
- 12. Viết JSONObject vào một tệp
- 13. Python: xóa một tệp nhật ký
- 14. C Syslog.h không viết nhật ký
- 15. Cách định cấu hình nhật ký hệ thống để nhật ký ứng dụng truy cập vào một tệp cụ thể
- 16. Điều gì cần ghi vào tệp nhật ký?
- 17. php var_dump ($ object) hoặc print_r ($ object) vào tệp nhật ký
- 18. Gắn thêm một dòng mới vào một tập tin (tệp nhật ký) bằng C++
- 19. Viết cho Nhật ký sự kiện trong Delphi
- 20. ghi nhật ký log4net không tạo tệp nhật ký
- 21. viết XSSFWorkbook vào một tệp zip
- 22. Chuyển hướng đầu ra lệnh "đặt" vào tệp nhật ký
- 23. Viết chỉ chắp thêm tệp nhật ký đã được nén trong Python
- 24. Viết đầu ra sqlplus vào một tệp
- 25. Tạo tệp nhật ký trong Powershell
- 26. Tệp nhật ký đầu ra nhật ký Git
- 27. Bạn viết gì trong nhật ký của mình?
- 28. Thêm/xóa tệp nhật ký trong khi chạy trong NLog
- 29. Log4j Đăng nhập vào một tệp nhật ký được chia sẻ
- 30. vị trí tệp nhật ký trong solr
Chú ý đến IIS WebGarden. AFAIK bạn có quá trình khác nhau -> đối tượng tĩnh khác nhau. Vì vậy, yon có thể nhận được một cuộc xung đột đồng thời. –
Fabrizio là đúng, tất cả các cược sẽ tắt nếu bạn đang sử dụng một trang trại; tôi đề nghị đăng nhập vào cơ sở dữ liệu thay vì trong trường hợp đó. Có thể bạn không muốn 50 máy chủ cố gắng ghi vào cùng một tệp văn bản! –