Skip Menu |

This queue is for tickets about the Sys-Syslog CPAN distribution.

Report information
The Basics
Id: 83482
Status: open
Priority: 0/
Queue: Sys-Syslog

People
Owner: Nobody in particular
Requestors: popefelix [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.32
Fixed in: (no value)



Subject: Description for Event ID 157 cannot be found on Windows 7
Distribution: Sys::Syslog 0.32 Perl version: This is perl 5, version 16, subversion 1 (v5.16.1) built for MSWin32-x64-multi-thread (ActivePerl) OS: Windows 7 Enterprise SP1, 64-bit When attempting to log messages from my script to the Windows Event Log, I get the message: "The description for Event ID 157 from source moseley-log-beautifier.pl [SSW:1.0.1] cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer. If the event originated on another computer, the display information had to be saved with the event. The following information was included with the event: Begin run on file "Z:\Log.txt" the message resource is present but the message is not found in the string/message table" Expected behavior: Log messages show up in Event Log without the error message. In the above example, "Begin run on file 'Z:\Log.txt'" would be the only thing displayed in the Event Log". Looking at PerlLog.mc (which, per README.Win32 is the default message text file used by the module), I see: MessageId = 0x009d SymbolicName = MSG_LFMT Language = English Logalert facility: %1 . Language = French Message de logalert : %1 . And this is under the heading "IRIX specific facilities". Example code: use Sys::Syslog qw/:standard :macros/; Readonly my $LOG_FACILITY => Sys::Syslog::LOG_USER; Readonly my $LOG_IDENTIFIER => q/moseley-log-beautifier/; Readonly my $LOG_OPTIONS => $EMPTY; BEGIN { # Start logging immediately openlog( $LOG_IDENTIFIER, $LOG_OPTIONS, $LOG_FACILITY ); } syslog( LOG_INFO, qq/Begin run on file "$transmitter_log"/ ); END { closelog; }
From: popefelix [...] gmail.com
Running "perl compile.pl" from win32/ subdir and installing new Win32.pm and PerlLog.dll fixes the "description cannot be found" error. Whether or not the event ID is supposed to be 157 or not is a question for the maintainer. :) Note that for "perl compile.pl" to work, I had to install the Windows SDK from http://www.microsoft.com/en-us/download/details.aspx?id=11310 to get mc.exe and rc.exe, and I got link.exe from the Visual Studio redistributable (don't have a link for that one). On Wed Feb 20 10:24:29 2013, popefelix wrote: Show quoted text
> Distribution: Sys::Syslog 0.32 > Perl version: This is perl 5, version 16, subversion 1 (v5.16.1) built > for MSWin32-x64-multi-thread (ActivePerl) > OS: Windows 7 Enterprise SP1, 64-bit > > When attempting to log messages from my script to the Windows Event
Log, Show quoted text
> I get the message: > "The description for Event ID 157 from source moseley-log-
beautifier.pl Show quoted text
> [SSW:1.0.1] cannot be found. Either the component that raises this
event Show quoted text
> is not installed on your local computer or the installation is > corrupted. You can install or repair the component on the local > computer. > > If the event originated on another computer, the display information
had Show quoted text
> to be saved with the event. > > The following information was included with the event: > > Begin run on file "Z:\Log.txt" > > > the message resource is present but the message is not found in the > string/message table" > > Expected behavior: Log messages show up in Event Log without the error > message. In the above example, "Begin run on file 'Z:\Log.txt'" would > be the only thing displayed in the Event Log". > > Looking at PerlLog.mc (which, per README.Win32 is the default message > text file used by the module), I see: > > MessageId = 0x009d > SymbolicName = MSG_LFMT > Language = English > Logalert facility: %1 > . > Language = French > Message de logalert : %1 > . > > And this is under the heading "IRIX specific facilities". > > Example code: > > use Sys::Syslog qw/:standard :macros/; > > Readonly my $LOG_FACILITY => Sys::Syslog::LOG_USER; > Readonly my $LOG_IDENTIFIER => q/moseley-log-beautifier/; > Readonly my $LOG_OPTIONS => $EMPTY; > > BEGIN { # Start logging immediately > openlog( $LOG_IDENTIFIER, $LOG_OPTIONS, $LOG_FACILITY ); > } > > syslog( LOG_INFO, qq/Begin run on file "$transmitter_log"/ ); > > END { > closelog; > }
Subject: Re: [rt.cpan.org #83482] Description for Event ID 157 cannot be found on Windows 7
Date: Wed, 20 Mar 2013 09:23:51 +0100
To: bug-Sys-Syslog [...] rt.cpan.org
From: Sébastien Aperghis-Tramoni <saper [...] cpan.org>
Hello, Kit Peters wrote via RT: Show quoted text
> Distribution: Sys::Syslog 0.32 > Perl version: This is perl 5, version 16, subversion 1 (v5.16.1) built > for MSWin32-x64-multi-thread (ActivePerl) > OS: Windows 7 Enterprise SP1, 64-bit > > When attempting to log messages from my script to the Windows Event Log, > I get the message: > "The description for Event ID 157 from source moseley-log-beautifier.pl > [SSW:1.0.1] cannot be found. Either the component that raises this event > is not installed on your local computer or the installation is > corrupted. You can install or repair the component on the local > computer. > > If the event originated on another computer, the display information had > to be saved with the event. > > The following information was included with the event: > > Begin run on file "Z:\Log.txt" > > > the message resource is present but the message is not found in the > string/message table" > > Expected behavior: Log messages show up in Event Log without the error > message. In the above example, "Begin run on file 'Z:\Log.txt'" would > be the only thing displayed in the Event Log". > > Looking at PerlLog.mc (which, per README.Win32 is the default message > text file used by the module), I see: > > MessageId = 0x009d > SymbolicName = MSG_LFMT > Language = English > Logalert facility: %1 > . > Language = French > Message de logalert : %1 > . > > And this is under the heading "IRIX specific facilities". > > Example code: > > use Sys::Syslog qw/:standard :macros/; > > Readonly my $LOG_FACILITY => Sys::Syslog::LOG_USER; > Readonly my $LOG_IDENTIFIER => q/moseley-log-beautifier/; > Readonly my $LOG_OPTIONS => $EMPTY; > > BEGIN { # Start logging immediately > openlog( $LOG_IDENTIFIER, $LOG_OPTIONS, $LOG_FACILITY ); > } > > syslog( LOG_INFO, qq/Begin run on file "$transmitter_log"/ ); > > END { > closelog; > }
What I don't understand here is that you syslog with the LOG_USER facility, but at EventLog step it becomes a LOG_LFMT / MSG_LFMT. Or maybe it's just because it takes the last element of the file? Show quoted text
> Running "perl compile.pl" from win32/ subdir and installing new Win32.pm > and PerlLog.dll fixes the "description cannot be found" error. Whether > or not the event ID is supposed to be 157 or not is a question for the > maintainer. :)
Eeyup, but because the maintainer doesn't have any Windows system by hand, this ticket probably won't really advance. Although I can try and see if I can do something with Wine. Show quoted text
> Note that for "perl compile.pl" to work, I had to install the Windows > SDK from http://www.microsoft.com/en-us/download/details.aspx?id=11310 > to get mc.exe and rc.exe, and I got link.exe from the Visual Studio > redistributable (don't have a link for that one).
Can't link.exe be obtained from a recent Visual C? I heard it's now available more or less for free somewhere on a Microsoft site. Thanks for the link to get mc.exe and rc.exe, I'll write it somewhere in the doc. -- Sébastien Aperghis-Tramoni Close the world, txEn eht nepO.