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 )