package loghelper;

#**************************************************************
#  
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#  
#    http://www.apache.org/licenses/LICENSE-2.0
#  
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.
#  
#**************************************************************



use strict;

BEGIN {
    use Exporter   ();
    our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);

    $VERSION     = 1.00;
    # if using RCS/CVS, this may be preferred
    $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
    @ISA         = qw(Exporter);
    @EXPORT      = qw(&set_logfile &close_logfile &log_print &setVerbose);
    %EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],
    # your exported package globals go here,
    # as well as any optionally exported functions
    @EXPORT_OK   = ( ); # qw($Var1 %Hashit &func3);
}

# ------------------------------- Log into a file -------------------------------
local *LOGFILE;
our $nGlobalLog = 0;
our $nGlobalVerbose = 0;

sub setVerbose()
{
    $nGlobalVerbose = 1;
}

sub set_logfile($)
{
    my $sLogFile = shift;

    if (open(LOGFILE, ">$sLogFile"))
    {
        $nGlobalLog = 1;
    }
}
sub close_logfile()
{
    close(LOGFILE);
    $nGlobalLog = 0;
}

sub log_print($)
{
    my $sLine = shift;
    if ($nGlobalLog)
    {
        print LOGFILE $sLine;
    }
    if ($nGlobalVerbose == 1)
    {
        print $sLine;
    }
    else
    {
        # In this special case for NetBeans, which show if a debugger can access.
        # The Line should print anyway.
        if ($sLine =~ /Listening for transport/)
        {
            print $sLine;
        }
    }
}

1;
