I don't think I understand what the problem is?
You're saying writing to UNC is fine, while log4net complains about T: being
unavailable? As Steve says, this indicates that T: isn't mapped for the logged
on user (did the login script run successfully?)
Re your code below: If T: and the UNC path both points to the same folder for
the logged on user, why would you (or log4net) want to translate T: to its
equivalent UNC path?
Have you tried writing directly to "T:\" from your service? (from outside
log4net)
I don't think you'll see usage of WMI in core log4net. I haven't tried this
myself, but I believe you can override RollingFileAppender's File {get; set; }
if you want to implement the code you posted.
Best wishes,
Dag
From: Paul Franklin [mailto:[EMAIL PROTECTED]
Sent: Monday, November 10, 2008 10:57 AM
To: [email protected]
Subject: RE: Problems with Network Drive
Steve,
I am aware that mapped drives are only visible to the current user. Our Windows
service is started using a specific user account and our VB.NET application is
able to cope with reading in configuration files (including the log4net.xml
file itself) from a UNC or mapped drive using the following bit of code:
Private Sub New(ByVal configFile As String)
'check that the config file is mapped drive
ConfigurationFileDetails = configFile
If Not configFile.StartsWith("\\") Then
'convert mapped drive letter
Dim search As New Management.ManagementObjectSearcher("SELECT RemoteName FROM
win32_NetworkConnection WHERE LocalName = """ + configFile.Substring(0, 2) +
"""")
Dim remoteName As String
Dim mgmtObjCollection As Management.ManagementObjectCollection = search.Get()
For Each mgmtObj As Management.ManagementObject In mgmtObjCollection
remoteName = mgmtObj("RemoteName").ToString
If Not IsNothing(remoteName) Then
remoteName += configFile.Substring(2)
ConfigurationFileDetails = remoteName
End If
Next
End If
I was hoping that there might be something similar in log4net itself?
Paul
> Date: Thu, 6 Nov 2008 07:08:49 +0100
> From: [EMAIL PROTECTED]
> To: [email protected]
> Subject: Re: FW: Problems with Network Drive
>
> May i am wrong, but as far as i know are mapped network drives only
> visible for the current which created it and not for the entry system.
> UNC Pathes are the most common way to access a network share.
>
> Steve
>
> Paul Franklin schrieb:
> >
> >
> > I am trying to log to a Network Drive using a RollingFileAppender but am
> > having problems. When I set the file parameter value to a UNC value
> > (\\servername\sharename\Alert.txt) it works fine However, when I try to set
> > it to a mapped drive value which refers to the same path it fails. The
> > internal debug is showing this: log4net:ERROR [RollingFileAppender] No
> > output stream or file set for the appender named [TDALog].log4net:
> > FileAppender: Opening file for writing [T:\Alert.txt] append
> > [True]log4net:ERROR [RollingFileAppender] Unable to acquire lock on file
> > T:\Alert.txt. Could not find a part of the path 'T:\'.log4net:ERROR
> > [RollingFileAppender] OpenFile(T:\Alert.txt,True) call
> > failed.log4net.Appender.FileAppender+LockingStream+LockStateException: The
> > file is not currently locked at
> > log4net.Appender.FileAppender.LockingStream.get_CanWrite() at
> > System.IO.StreamWriter..ctor(Stream stream, Encoding encoding, Int32
> > bufferSize) at System.IO.StreamWriter..ctor(Stream stream,
> Encoding encoding) at log4net.Appender.FileAppender.OpenFile(String fileName,
> Boolean append) at log4net.Appender.RollingFileAppender.OpenFile(String
> fileName, Boolean append) at
> log4net.Appender.FileAppender.SafeOpenFile(String fileName, Boolean
> append)log4net:ERROR [RollingFileAppender] No output stream or file set for
> the appender named [TDALog]. When I use UNC for the same file it works okay:
> log4net: FileAppender: Opening file for writing [\\uncdrive\share\Alert.txt]
> append [True]log4net: XmlHierarchyConfigurator: Created Appender
> [TDALog]log4net: XmlHierarchyConfigurator: Adding appender named [TDALog] to
> logger [root].log4net: XmlHierarchyConfigurator: Retrieving an instance of
> log4net.Repository.Logger for logger [tda].log4net: XmlHierarchyConfigurator:
> Setting [trustda] additivity to [True].log4net: XmlHierarchyConfigurator:
> Logger [trustda] Level string is [DEBUG].log4net: XmlHierarchyConfigurator:
> Logger [trustda] level set to [name="DEBUG",value=30000].log4n
> et: XmlHierarchyConfigurator: Adding appender named [TDALog] to logger [tda].
> Any ideas? We would only use UNC as a last resort because the application is
> going to be distributed to multiple sites which all use a common drive
> mapping letter
> >
> > Click here for FREE customisable desktop wallpapers. Get them Now!
> > _________________________________________________________________
> > See the most popular videos on the web
> > http://clk.atdmt.com/GBL/go/115454061/direct/01/
________________________________________
Click here for FREE customisable desktop wallpapers. Get them Now!
###########################################
This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.f-secure.com/