2009-10-15 67 views
25

Vị trí "chuẩn" tốt nhất để đặt tệp nhật ký gỡ lỗi của ứng dụng vào môi trường người dùng Windows ở đâu?Nơi lưu trữ tệp nhật ký ứng dụng trên Windows

Trong trường hợp cụ thể này, đây là một ứng dụng được chạy một lần và có thể bị lỗi. Nó sẽ được điều hành bởi các loại quản trị viên hệ thống có thể cần phải kiểm tra nhật ký sau khi ứng dụng được chạy. Mỗi khi ứng dụng được chạy, một tệp nhật ký mới được tạo.

Tùy chọn đó đã được lưu hành cho đến nay bao gồm:

  1. Chương trình

    thư mục
  2. máy tính để bàn của người dùng
  3. thư mục Application Data địa phương của người dùng.

Tôi yêu thích, nhưng tôi tự hỏi sự đồng thuận của SO là gì.

Lưu ý: điều này tương tự như this question, nhưng chúng tôi đang xử lý một ứng dụng chỉ có khả năng được chạy một lần bởi một người dùng.

+0

Mục đích của tệp nhật ký là gì? Điều đó có thể dẫn đến câu trả lời. Ai sẽ xem nó? Nó sẽ được xem xét trong nhiều trường hợp? Chỉ xem xét nếu có vấn đề? – noctonura

+0

Công cụ này là một công cụ nâng cấp cơ sở dữ liệu và nó thực hiện một loạt các thứ cho cơ sở dữ liệu của bạn. Nhật ký hiển thị mọi thứ, bao gồm cả lỗi. Hầu hết người dùng có thể chỉ xem xét nó trong trường hợp lỗi, nhưng chúng tôi mong đợi rất nhiều DBA sẽ muốn biết chính xác những gì đã được thực hiện. Vì vậy, họ sẽ muốn đi tìm nhật ký và nhìn vào nó. –

+0

Xem thêm [câu hỏi này] (http://stackoverflow.com/questions/269893/best-place-to-store-config-files-and-log-files-on-windows-for-my-program) –

Trả lời

13

Thư mục Dữ liệu ứng dụng dường như là nơi hoàn hảo, nhưng đó là một khu vực gần như vô hình. Bạn cần cung cấp cho người dùng của mình một cách dễ dàng để truy cập nó.

Yêu cầu tập lệnh cài đặt của bạn tạo thư mục Nhật ký trong vùng Dữ liệu ứng dụng cho chương trình của bạn và bao gồm liên kết đến thư mục trong menu Bắt đầu của bạn.

+2

Thư mục AppData là nơi tốt nhất, nhưng nó cần một liên kết từ chương trình hoặc trình đơn bắt đầu để cho phép truy cập dễ dàng, ngay cả đối với người quản trị. Tại sao bạn không chỉ cần bật lên các tập tin đăng nhập vào cuối chạy, hoặc mở một cửa sổ thám hiểm cho thư mục AppData? Thư mục ProgramFiles là sai, Vista trở đi thấy rằng dưới dạng chỉ đọc trừ khi bạn là một chương trình cài đặt. Các tài liệu người dùng và máy tính để bàn là những lựa chọn không tốt, chúng nên được bỏ trống đối với các tài liệu mà người dùng đã tạo (đã nhập, tải xuống) chứ không phải các bản ghi. – Martin

+0

Âm thanh như một ý tưởng hay đối với tôi ... –

+0

Bạn có thể vui lòng giải thích về câu trả lời này không? Tôi sẽ đặt tên cho thư mục nhật ký mà tôi đang tạo trong Dữ liệu ứng dụng? Tên ứng dụng của tôi? Tên tổ chức? Quy ước Windows là gì? – Thunderforge

1

Thư mục Windows Temp

+6

Tại sao ? Ai sẽ tìm một tệp nhật ký ở đó. Nó không phải là một tập tin tạm thời, IMO. –

+1

Ông nói với "một ứng dụng mà chỉ có khả năng được chạy một lần bởi một người dùng" với thông tin này tôi nghĩ đó là một bản ghi tạm thời và ứng dụng tạm thời. – Zote

4

Vị trí "chuẩn" cho nhật ký sẽ là thư mục AppData. Tuy nhiên, thực sự tùy thuộc vào bạn nơi bạn muốn lưu trữ chúng. Vì họ là quản trị viên (người sử dụng điện) thì sẽ không có vấn đề gì khi lưu trữ các bản ghi trong cùng thư mục với ứng dụng đang chạy. Ngay cả trong MyDocuments của người dùng sẽ là một tiếng hét tốt.

+3

Điểm tốt, nhưng tôi sẽ không khuyến khích ghi lại nội dung vào My Documents hoặc Desktop - đó là địa điểm của người dùng và tôi không nghĩ rằng ứng dụng nên viết bất cứ thứ gì cho họ trừ khi được người dùng hướng dẫn. –

+0

Nó không phải là không phổ biến cho các ứng dụng (theo mặc định) để lưu các mục trong thư mục MyDocuments, ví dụ: mẫu. Visual Studio thực hiện điều này cũng như Delphi. – James

+0

Cá nhân tôi cảm thấy khó chịu khi mọi thứ lưu nội dung vào Tài liệu của tôi, nhưng đó là tôi. Một trong các đối số chống lại AppData là người dùng không dễ dàng "có thể khám phá", vì vậy Tài liệu của tôi có thể tốt hơn ... –

2

1. Thư mục chương trình < - không tốt. Lý tưởng nhất là bạn sẽ chỉ có quyền RX trên thư mục này.

2.Máy tính để bàn của người dùng < - về mặt kỹ thuật có thể được thực hiện, nhưng tôi không thích ý tưởng này. Máy tính để bàn gây ô nhiễm ... Tôi, với tư cách là người dùng, không thích nó.

3. Thư mục Dữ liệu ứng dụng cục bộ của người dùng. < - tốt hơn

Tùy chọn của tôi là thư mục phụ trong thư mục chương trình (có tên rõ ràng như "DebugLog" hoặc nội dung tương tự). Quyền trên thư mục con đó sẽ cho phép tạo và ghi tệp ("Thay đổi" sẽ ổn)

+2

Sử dụng bất kỳ thứ gì trong Thư mục chương trình là một ý tưởng tồi bởi vì nó được chia sẻ giữa bất kỳ người dùng nào sử dụng máy. Sau đó, bạn có cấp quyền đọc/ghi cho bất kỳ thư mục DebugLog nào không? Sau đó, bạn có vấn đề an ninh, người dùng khác nhau ghi đè lên tập tin đăng nhập của mỗi bà mẹ, vv .... # 3 của bạn là câu trả lời đúng IMHO. – noctonura

+0

Bạn nói đúng. Trong trường hợp cụ thể này mặc dù (gỡ lỗi đăng nhập) một thư mục con được chấp nhận trong quan điểm của tôi. (đây không phải là một cách tiêu chuẩn để sử dụng phần mềm này, mà là một ngoại lệ). Vì vậy, nó là OK để cho phép gỡ lỗi đăng nhập được lưu trữ trong một thư mục con Debug. Nhật ký gỡ lỗi phải được tạo với tên duy nhất để ngăn ghi đè. – DmitryK

+0

Cách bạn sẽ tạo thư mục người dùng nào đang tạo trong Tệp chương trình khi chạy thiết lập. –

4

Trong tổ chức tôi làm việc cho chúng tôi sử dụng thư mục (% TEMP% hoặc% TMP%) \ CompanyOrProductName \ Nhật ký Sử dụng% APPDATA% có thể có vấn đề với hồ sơ chuyển vùng nếu nhật ký rất nhiều hoặc rất lớn: nó làm chậm quá trình đăng nhập của họ ...

+1

Điểm tốt. Một cái gì đó để ghi nhớ khi bán phá giá các công cụ trong AppData. –

+11

Xem xét% LOCALAPPDATA% - tương đương không chuyển vùng. –

+1

Tôi sẽ không lưu trữ tệp nhật ký trên thư mục TEMP. Các tệp trong TEMP có nghĩa là tạm thời và có thể bị xóa bất kỳ lúc nào. Mục đích của nhật ký là ở đó cho đến khi có điều gì đó xấu xảy ra hoặc bạn cần tham khảo ý kiến ​​đó. Bạn không muốn hệ thống của bạn bị xóa một cách ngẫu nhiên và sẽ biến mất vào ngày bạn cần. Nếu nhật ký quá lớn, bạn cần cài đặt ứng dụng của mình để sử dụng nhật ký tròn hoặc xóa các tệp cũ hơn sau một thời gian. –

1

Nếu bạn EXPECT Xảy ra lỗi gì đó trong thư mục Dữ liệu ứng dụng cục bộ của người dùng.

Nếu bạn không muốn và chỉ muốn đăng nhập, tôi có thể nghĩ đến việc sử dụng thư mục tạm thời. Lý do cho việc này rất đơn giản. Nếu ứng dụng chỉ chạy một lần, bạn sẽ để lại thùng rác trong thư mục Dữ liệu ứng dụng nếu không sẽ không ai cần lại. Trong temp bạn có ít nhất CHANCE rằng nó sẽ được dọn dẹp sau này.

BTW: IMHO tốt nhất sẽ không tạo nhật ký AS A FILE ở tất cả (đăng nhập vào bộ nhớ) cho đến khi có sự cố. Sau đó, bạn vẫn có thể cung cấp hộp thoại trong đó người dùng chọn nơi lưu nhật ký.

Các vấn đề liên quan