[Mono-dev] local file based EventLog implementation

Atsushi Eno atsushi at ximian.com
Mon Aug 21 11:34:59 EDT 2006


What is more important to know is that this extra dll is "required"
only for Win32 mode of the implementation.

If I wrote about it, I'd have never said it is "required".

Atsushi Eno

Robert Jordan wrote:
> Hello,
> 
> Miguel de Icaza wrote:
>>> I'd prefer the "pure" approach, meaning using your original
>>> EventLogMessages.dll. 
>>>
>>> But we need approval from Miguel on this.
>> Someone please send me a summary ;-)
>>
>> My feeling: I dont know why we need another dll.
> 
> 1) The Win32-EventLog doesn't log strings. For performance
>     reasons it logs the resource IDs of strings stored as
>     a PE text resource in a PE-DLL that has to be registered
>     with the EventLog services.
>     The strings may contain substitution symbols (%1, %2 ...),
>     since EventLog's API supports parameter substitution.
> 
> 2) Because (1) is not very comprehensible for MS.NET users,
>     MS came up with a brilliant idea to register a dummy
>     DLL (EventLogMessages.dll) consisting of resource strings
>     with a parameter substitution symbol: "%1".
> 
> 3) MS.NET's EventLog class logs the resource ID of the
>     "%1" together with the real message as an argument,
>     simulating the ability to log plain text strings.
> 
> 4) Mono's EventLog implementation for Win32 needs the same hack,
>     if its implementation is based on the Win32 EventLog API
>     (it is already).
> 
> 5) Mono's EventLog implementation for Unix doesn't need
>     EventLogMessages.dll, because Unix doesn't have an
>     EventLog with the same restrictions like the Win32-EventLog.
> 
> 6) MS.NET 2.0 supports registration of resource DLLs and
>     logging by ID.
>     If Mono's EventLog implementation for Unix will support
>     this features, providing EventLogMessages.dll makes sense
>     again, because Mono's internal EventLog is almost Win32
>     compatible and already supports those resource DLLs.
> 
> -- end of summary  --
> 
> 
> The question is whether (6) will be feature-complete.
> 
> The tool-chain (MC, RC) for creating such DLLs usually doesn't
> exist on Unix, so probably no one is willing to use this API,
> but it could useful for porting existing 2.0 apps.
> 
> The problem I see is: for the sake of 100% API compatibility
> the full Win32-EventLog has to be simulated on Unix, and,
> because it comes in handy, even the internals of Win32-EventLog
> are simulated (the registry configuration). Not to speak about
> the need of a viewer for this logs, because otherwise the entries
> were unreadable. All this for a small range of applications
> that use custom message DLLs.
> 
> I don't like this, but of course I fully respect the work
> already done! I'd rather blame MS because its 2.0 EventLog
> implementation became even more Win32-centric.
> 
> Robert
> 
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 




More information about the Mono-devel-list mailing list