summaryrefslogtreecommitdiffstats
path: root/ldap/admin/src/scripts/SetupLog.pm
diff options
context:
space:
mode:
Diffstat (limited to 'ldap/admin/src/scripts/SetupLog.pm')
-rw-r--r--ldap/admin/src/scripts/SetupLog.pm99
1 files changed, 99 insertions, 0 deletions
diff --git a/ldap/admin/src/scripts/SetupLog.pm b/ldap/admin/src/scripts/SetupLog.pm
new file mode 100644
index 00000000..4eaa7b7c
--- /dev/null
+++ b/ldap/admin/src/scripts/SetupLog.pm
@@ -0,0 +1,99 @@
+# BEGIN COPYRIGHT BLOCK
+# This Program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; version 2 of the License.
+#
+# This Program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA.
+#
+# In addition, as a special exception, Red Hat, Inc. gives You the additional
+# right to link the code of this Program with code not covered under the GNU
+# General Public License ("Non-GPL Code") and to distribute linked combinations
+# including the two, subject to the limitations in this paragraph. Non-GPL Code
+# permitted under this exception must only link to the code of this Program
+# through those well defined interfaces identified in the file named EXCEPTION
+# found in the source code files (the "Approved Interfaces"). The files of
+# Non-GPL Code may instantiate templates or use macros or inline functions from
+# the Approved Interfaces without causing the resulting work to be covered by
+# the GNU General Public License. Only Red Hat, Inc. may make changes or
+# additions to the list of Approved Interfaces. You must obey the GNU General
+# Public License in all respects for all of the Program code and other code used
+# in conjunction with the Program except the Non-GPL Code covered by this
+# exception. If you modify this file, you may extend this exception to your
+# version of the file, but you are not obligated to do so. If you do not wish to
+# provide this exception without modification, you must delete this exception
+# statement from your version and license this file solely under the GPL without
+# exception.
+#
+#
+# Copyright (C) 2007 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+#
+# This implements SetupLog from setuputil InstallLog in perl
+#
+package SetupLog;
+use Exporter ();
+@ISA = qw(Exporter);
+@EXPORT = qw($FATAL $START $SUCCESS $WARN $INFO $DEBUG);
+@EXPORT_OK = qw($FATAL $START $SUCCESS $WARN $INFO $DEBUG);
+
+use POSIX qw(strftime);
+
+# tempfiles
+use File::Temp qw(tempfile tempdir);
+
+# exported variables
+$FATAL = "Fatal";
+$START = "Start";
+$SUCCESS = "Success";
+$WARN = "Warning";
+$INFO = "Info";
+$DEBUG = "Debug";
+
+sub new {
+ my $type = shift;
+ my $filename = shift;
+ my $self = {};
+ my $fh;
+
+ if (!$filename) {
+ ($fh, $filename) = tempfile("setupXXXXXX", UNLINK => 0,
+ SUFFIX => ".log", DIR => File::Spec->tmpdir);
+ } else {
+ open LOGFILE, ">$filename" or die "Error: could not open logfile $filename: $!";
+ $fh = \*LOGFILE;
+ }
+ $self->{fh} = $fh;
+ $self->{filename} = $filename;
+ $self = bless $self, $type;
+
+ return $self;
+}
+
+sub logMessage {
+ my ($self, $level, $who, $msg, @rest) = @_;
+ if (!$self->{fh}) {
+ return;
+ }
+
+ my $string = strftime "[%y/%m/%d:%H:%M:%S] - ", localtime;
+ $string .= "[$who] $level ";
+ $string .= sprintf $msg, @rest;
+ print { $self->{fh} } $string;
+}
+
+sub levels {
+ my $self = shift;
+ return ($FATAL, $START, $SUCCESS, $WARN, $INFO, $DEBUG);
+}
+
+#############################################################################
+# Mandatory TRUE return value.
+#
+1;