Tệp văn bản thật tuyệt vời cho ứng dụng máy chủ (bạn đã nói Windows 2003). Bạn nên có một tệp nhật ký riêng cho mỗi ứng dụng máy chủ, vị trí thực sự là vấn đề của quy ước để đồng ý với quản trị viên. Ví dụ. cho các ứng dụng ASP.NET tôi thường thấy chúng được đặt trên một đĩa riêng biệt từ ứng dụng theo cấu trúc thư mục bắt chước cấu trúc thư mục ảo.
Đối với ứng dụng khách, một nhược điểm của tệp văn bản là người dùng có thể bắt đầu nhiều bản sao của ứng dụng của bạn (trừ khi bạn đã thực hiện các bước cụ thể để ngăn điều này). Vì vậy, bạn có vấn đề tranh chấp nếu nhiều trường hợp cố gắng ghi vào cùng một tệp nhật ký. Vì lý do này, tôi sẽ luôn luôn thích Nhật ký sự kiện Windows cho các ứng dụng khách. Một lưu ý là bạn cần phải là quản trị viên để tạo nhật ký sự kiện - điều này có thể được thực hiện, ví dụ: theo gói cài đặt.
Nếu bạn sử dụng tệp, tôi khuyên bạn nên sử dụng thư mục Environment.SpecialFolder. Địa phương ApplicationData thay vì SpecialFolder.ApplicationData theo đề xuất của người khác. LocalApplicationData nằm trên đĩa cục bộ: bạn không muốn các sự cố mạng ngăn bạn đăng nhập khi người dùng có hồ sơ chuyển vùng. Đối với một ứng dụng WinForms, sử dụng Application.LocalUserAppDataPath.
Trong cả hai trường hợp, tôi sẽ sử dụng tệp cấu hình để quyết định nơi đăng nhập để bạn có thể dễ dàng thay đổi. Ví dụ. nếu bạn sử dụng Log4Net hoặc một khung tương tự, bạn có thể dễ dàng định cấu hình có đăng nhập vào tệp văn bản, nhật ký sự kiện, cả hai hoặc ở nơi khác (ví dụ: cơ sở dữ liệu) mà không thay đổi ứng dụng của bạn.
Bạn có thể cụ thể hơn về loại chương trình hoặc loại lỗi bạn định đăng nhập. Làm thế nào quan trọng là các lỗi về lâu dài. (ví dụ: máy chủ web?) –
Sẽ hữu ích khi biết bạn đang phát triển công nghệ gì và phiên bản hệ điều hành nào bạn đang nhắm mục tiêu. :) –