0

I am using Log4Perl module for logging. When I run the application I am getting some Log4Perl module logs on console:

Subroutine import redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 76.
Subroutine initialized redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 214.
Subroutine new redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 220.
Subroutine reset redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 227.
Subroutine init_once redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 234.
Subroutine init redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 241.
Subroutine init_and_watch redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 255.
Subroutine easy_init redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 270.
Subroutine wrapper_register redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 348.
Subroutine get_logger redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 356.
Subroutine caller_depth_offset redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 398.
Subroutine appenders redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 418.
Subroutine add_appender redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 424.
Subroutine appender_thresholds_adjust redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 439.
Subroutine appender_by_name redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 484.
Subroutine eradicate_appender redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 502.
Subroutine infiltrate_lwp redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 510.
Subroutine easy_closure_create redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 531.
Subroutine easy_closure_cleanup redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 545.
Subroutine easy_closure_category_cleanup redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 562.
Subroutine easy_closure_global_cleanup redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 578.
Subroutine easy_closure_logger_remove redefined at C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 587.
Subroutine remove_logger redefined at      C:/Strawberry/perl/site/lib/LOG/Log4perl.pm line 602.

I don't know why they are coming. I have also tried various log levels but still I am getting these.

ThisSuitIsBlackNot
  • 23,492
  • 9
  • 63
  • 110
Pardeep Singh
  • 412
  • 3
  • 14

1 Answers1

3

It's Log::Log4perl not Log::Log4Perl.

From Log4perl FAQ

If you're on Windows and are getting warning messages like

Constant subroutine Log::Log4perl::_INTERNAL_DEBUG redefined at C:/Programme/Perl/lib/constant.pm line 103. Subroutine import redefined at C:/Programme/Perl/site/lib/Log/Log4Perl.pm line 69. Subroutine initialized redefined at C:/Programme/Perl/site/lib/Log/Log4Perl.pm line 207.

then chances are that you're using 'Log::Log4Perl' (wrong uppercase P) instead of the correct 'Log::Log4perl'. Perl on Windows doesn't handle this error well and spits out a slew of confusing warning messages. But now you know, just use the correct module name and you'll be fine.

Also check out this rt: https://rt.cpan.org/Public/Bug/Display.html?id=23890

Chankey Pathak
  • 21,187
  • 12
  • 85
  • 133
  • I am using the Log4perl module if i would have been using with wrong name it would have gave me the error like Log4Perl not found . Thanks and i hope that it is only because of windows. – Pardeep Singh Aug 07 '15 at 11:20
  • 1
    @PardeepSingh Re. "if i would have been using with wrong name it would have gave me the error like Log4Perl not found" Not true. Windows has a case-insensitive filesystem, so even `use log::log4perl;` will find the module file. After that, things don't work so well. See [use seems to be case INSENSITIVE!!](http://www.perlmonks.org/?node_id=800770) on PerlMonks. – ThisSuitIsBlackNot Aug 07 '15 at 23:30