Term-RouterCLI

 view release on metacpan or  search on metacpan

lib/Term/RouterCLI/Log.pm  view on Meta::CPAN

    $self->_init(@_);
    return $self;
}

sub _init
{
    my $self = shift;
    my %hParameters = @_;

    $self->{'_bEnabled'}            = 1;
    $self->{'_oParent'}             = undef;
    $self->{'_sDirectory'}          = './logs/';
    $self->{'_sFilename'}           = undef;
    $self->{'_iFileLength'}         = 500;
    $self->{'_iMaxFileLength'}      = 50000;        # Define an upper bound for sanity sakes
    $self->{'_oFileHandle'}         = undef;
    $self->{'_aCurrentLogData'}     = undef;
    $self->{'_iCurrentLogSize'}     = undef;

    # Lets overwrite any defaults with values that are passed in
    if (%hParameters)
    {
        foreach (keys (%hParameters)) { $self->{$_} = $hParameters{$_}; }
    }
}

sub DESTROY
{
    my $self = shift;
    $self = {};
} 



# ----------------------------------------
# Public Methods
# ----------------------------------------
sub Enable
{
    # This method will enable this log method
    my $self = shift;
    $self->{'_bEnabled'} = 1;
}

sub Disable
{
    # This method will disable this log method
    my $self = shift;
    $self->{'_bEnabled'} = 0;
}

sub ExpandTildesInFilename
{
    # This method will expand any tildes that are in the file name so that it will work right
    my $self = shift;
    my $logger = $oDebugger->GetLogger($self);
    
    $logger->debug("$self->{'_sName'} - ", '### Entering Method ###');
    if (defined $self->{'_sFilename'}) 
    {
        $self->{'_sFilename'} =~ s/^~([^\/]*)/$1?(getpwnam($1))[7]:$ENV{HOME}||$ENV{LOGDIR}||(getpwuid($>))[7]/e;
    }    
    $logger->debug("$self->{'_sName'} - ", '### Leaving Method ###');
}

sub SetFilename
{
    # This method will set the filename for this logging method
    # Required:
    #   string (filename)
    my $self = shift;
    my $parameter = shift;
    my $logger = $oDebugger->GetLogger($self);

    $logger->debug("$self->{'_sName'} - ", '### Entering Method ###');  
    if (defined $parameter)
    {
        $self->{'_sFilename'} = $parameter;
        $self->ExpandTildesInFilename();
    }
    $logger->debug("$self->{'_sName'} - ", '### Leaving Method ###');   
}

sub SetFileLength
{
    # This method will set the length of the history file on disk which is limited to 50000 for sanity reasons
    # Required:
    #   integer (length)
    my $self = shift;
    my $parameter = shift;
    my $logger = $oDebugger->GetLogger($self);

    $logger->debug("$self->{'_sName'} - ", '### Entering Method ###');
    if (($parameter =~ /^\d+$/) && ($parameter > 0) && ($parameter < $self->{'_iMaxFileLength'}))
    {
        $self->{'_iFileLength'} = $parameter;
        if ($self->{'_iFileLength'} eq $parameter) { $logger->info("File length value set to $parameter");}
    } 
    $logger->debug("$self->{'_sName'} - ", '### Leaving Method ###');
}

sub SetCurrentLogSize
{
    # This method will capture the current size of the logging data array
    my $self = shift;
    my $logger = $oDebugger->GetLogger($self);
    
    $logger->debug("$self->{'_sName'} - ", '### Entering Method ###');
    $self->{'_iCurrentLogSize'} = @{$self->{'_aCurrentLogData'}};
    
    $logger->debug("$self->{'_sName'} - _iCurrentLogSize: $self->{'_iCurrentLogSize'}");
    $logger->debug("$self->{'_sName'} - ", '### Leaving Method ###');
}

sub OpenFileHandle
{
    # This method will create a file handle for the audit log
    # Required:
    #   string (handle type R=Read, W=Write, A=Append)
    my $self = shift;
    my $parameter = shift;



( run in 0.632 second using v1.01-cache-2.11-cpan-df04353d9ac )