The right place to save log files to

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi,

my application writes some log files. It runs on notebooks and PCs. Several
different users may log on to the machines.

Which is the right place to store the log files? Should I create some sub
folder below %ALLUSERSPROFILE% ? The problem here: By default a standard
windows user does not have write permission below %ALLUSERSPROFILE%. Which is
the recommended place for saving this kind of data?

Thanks for any ideas,
Guido
 
Hello Guido,

Why not to save to the application folder?

---
WBR, Michael Nemtsev [.NET/C# MVP].
My blog: http://spaces.live.com/laflour
Team blog: http://devkids.blogspot.com/

"The greatest danger for most of us is not that our aim is too high and we
miss it, but that it is too low and we reach it" (c) Michelangelo

GK> my application writes some log files. It runs on notebooks and PCs.
GK> Several different users may log on to the machines.
GK>
GK> Which is the right place to store the log files? Should I create
GK> some sub folder below %ALLUSERSPROFILE% ? The problem here: By
GK> default a standard windows user does not have write permission below
GK> %ALLUSERSPROFILE%. Which is the recommended place for saving this
GK> kind of data?
GK>
GK> Thanks for any ideas,
GK>
GK> Guido
GK>
 
If by "application folder" you mean the application folder in "program
files", it normally required administrator privileges and thus is not a good
idea.

If you mean Environment.SpecialFolder.ApplicationData, you get a separate
log for each user. If you need a common log, you could use
Environment.SpecialFolder.CommonApplicationData.

These locations are normally hidden. If this is a problem, use
Environment.SpecialFolder.MyDocuments.

JR
 
Hi Guido,

Yes, just as JR pointed out, you should save the log files to the per-user
directory under C:\Documents and Settings. The normal user will have full
control over his own per-user directory. You may use
Environment.GetFolderPath to obtain the path programmatically, like this:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

However, I need correct one points:
Environment.SpecialFolder.CommonApplicationData points to the "Application
Data" under %ALLUSERSPROFILE% directory, and normal users do not have write
permission to it just as you have discovered. So you should not use
"Environment.SpecialFolder.CommonApplicationData" constant.

Hope it helps.

Best regards,
Jeffrey Tan
Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 
Back
Top