Thanks, I'll have a look at that.


Michael Schall wrote:
> 
> Instead of using the GlobalContext.Properties to define where your
> logs are coming from I would define a Shared/Static logger per class
> based on the fully qualified class name allowing you to use the
> logger hierarchy as defined here
> http://logging.apache.org/log4net/release/manual/introduction.html
> 
> The FAQ has a section too...
> http://logging.apache.org/log4net/release/faq.html#Implementing%20Logging
> 
> This way you can turn off specific loggers, direct them to different
> appenders, ...
> 
> Mike
> 
> On Wed, Sep 2, 2009 at 9:01 AM, mattyboy<[email protected]>
> wrote:
>>
>> Thanks for the replying.
>>
>> When I say mutliple assemblies I have a GUI app. and it uses log4net to
>> log
>> to a file let's say 'C:\Claymore.log'.
>>
>> I have developed several .dll files which I call from within the GUI app.
>>  I
>> want the code within the .dll files to also log to 'C:\Calymore.log'.
>>
>> I've actually just managed to get it working but I'm not using locking
>> and
>> wonder whether I should be or not for this scenario.  As far as I'm aware
>> everything will run in the same process and should be fine without
>> locking......?
>>
>> Here's what I've done:
>>
>> In both the GUI front-end and each .dll I have added the following entry
>> to
>> the AssemblyInfo.vb (yes, I'm using vb.net!) file
>>
>> <Assembly:
>> log4net.Config.XMLConfigurator(ConfigFile:="Claymore.exe.log4net",
>> Watch:=True)>
>>
>> In GUI Front-End Assembly ONLY I've added 'Claymore.exe.log4net' file.
>>
>> Then in GUI Front-End class:
>>
>> Public Class frmDashboard
>>    Public Shared logger As log4net.ILog
>>
>>    Private Sub frmDashboard_Load(ByVal sender As Object, ByVal e As
>> System.EventArgs) Handles Me.Load
>>        log4net.GlobalContext.Properties("AssemblyName") =
>> Assembly.GetExecutingAssembly.GetName.Name()
>>        logger = log4net.LogManager.GetLogger("ClaymoreLogger")
>>        logger.Info("Dashboard_Load() - Start")
>>        logger.Debug("Dashboard_Load() - Finish")
>>        Dim clsGUI As New ClaymoreGUI.clsDashboard()
>>    End Sub
>> End Class
>>
>> In my ClaymoreGUI.dll:
>>
>> Public Class clsDashboard
>>    Public Shared logger As log4net.ILog
>>
>>    Public Sub New()
>>        log4net.GlobalContext.Properties("AssemblyName") =
>> Assembly.GetExecutingAssembly.GetName.Name()
>>        logger = log4net.LogManager.GetLogger("ClaymoreLogger")
>>        logger.Info("New() - Start")
>>        logger.Debug("New() - Finish")
>>    End Sub
>> End Class
>>
>> Seems to work well :-)
>>
>>
>>
>> Michael Schall wrote:
>>>
>>> When you say multiple assemblies, I assume you mean multiple
>>> processes?  Logging this way is not suggested as for each log message
>>> you have to reopen the file.  If you have really light logging, it
>>> would probably be ok...
>>>
>>> Look at the LockingModel:
>>> http://logging.apache.org/log4net/release/sdk/log4net.Appender.FileAppender.LockingModel.html
>>>
>>> From http://logging.apache.org/log4net/release/config-examples.html:
>>>
>>> This example shows how to configure the appender to use the minimal
>>> locking model that allows multiple processes to write to the same
>>> file.
>>>
>>> <appender name="FileAppender" type="log4net.Appender.FileAppender">
>>>     <file value="${TMP}\log-file.txt" />
>>>     <appendToFile value="true" />
>>>     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
>>>     <layout type="log4net.Layout.PatternLayout">
>>>         <conversionPattern value="%date [%thread] %-5level %logger
>>> [%property{NDC}] - %message%newline" />
>>>     </layout>
>>> </appender>
>>>
>>> On Wed, Sep 2, 2009 at 3:28 AM, mattyboy<[email protected]>
>>> wrote:
>>>>
>>>> Hi Christian,
>>>>
>>>> I'm actually looking to achieve the opposite, I want to know if it's
>>>> possible to get several assemblies to log to the SAME log file.  Have
>>>> you
>>>> managed to achieve this?  If so, do you have any example code/configs
>>>> etc.?
>>>>
>>>> Many Thanks
>>>>
>>>>
>>>> cristianmad wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I am new to log4net and just starting reading some documentation about
>>>>> it.
>>>>> We need to see if it would be a suitable logging solution for our
>>>>> applications.
>>>>> Our product (like most of them) uses a number of assemblies. I was
>>>>> wondering if it would be possible for each assembly to log in its own
>>>>> log
>>>>> file (or any other destination) even if they are loaded in the same
>>>>> application domain.
>>>>> For example consider we have the following assemblies: A.dll and
>>>>> B.dll.
>>>>> Is
>>>>> it possible for the two assemblies to log in their own log files even
>>>>> if
>>>>> they are loaded in the same application domain?
>>>>> If yes, could you please give me a very simple example?
>>>>>
>>>>>
>>>>> Thank you,
>>>>> Cristian
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/Log-in-more-than-1-log-destination-for-different-assemblies.-tp24807634p25253548.html
>>>> Sent from the Log4net - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>> :-):-):-)
>> --
>> View this message in context:
>> http://www.nabble.com/Log-in-more-than-1-log-destination-for-different-assemblies.-tp24807634p25258147.html
>> Sent from the Log4net - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Log-in-more-than-1-log-destination-for-different-assemblies.-tp24807634p25259963.html
Sent from the Log4net - Users mailing list archive at Nabble.com.

Reply via email to