diff -r e7e0ae78773e -r 5b32dc297d05 sysmodellibs/sysmodelgen/src/common/Logger.pm --- a/sysmodellibs/sysmodelgen/src/common/Logger.pm Tue Aug 10 14:29:28 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,191 +0,0 @@ -# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -# All rights reserved. -# This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" -# which accompanies this distribution, and is available -# at the URL "http://www.eclipse.org/legal/epl-v10.html". -# -# Initial Contributors: -# Nokia Corporation - initial contribution. -# -# Contributors: -# -# Description: -# - -package Logger; - -use FindBin; -use lib $FindBin::Bin; - -use DepConstants; -use LogItem; - -# Global statics: - -# This is expected to be set by the client code using $Logger::LOGFILE -# If it's not defined, the logging is done to stdout -$LOGFILE = ""; - -$SEVERITY = DepConstants::ERROR; - -# Forward declarations: -sub Log($$$$); -sub LogFatal($$$); -sub LogError($$$); -sub LogWarning($$$); -sub LogInfo($$$); -sub LogRaw($); - -#------------------------------------------------------------------------------------------------- -# Subroutine: Log -# Purpose: Logs to the screen -# Input: Messsage, Module Code, Severity -# Output: None -#------------------------------------------------------------------------------------------------- -sub Log($$$$) - { - my $message = $_[0]; - my $callingModule = $_[1]; - my $severity = $_[2] ? $_[2] : DepConstants::INFO; - my $depth = $_[3] ? $_[3] : 0; - - # log this only if its severity level is less than or equal to the user-defined level: - # -w1: errors only (default) - # -w2: warnings as well as errors - # -w3: info messages, warnings and errors. - return if $severity > $SEVERITY; - - my $code = &DepConstants::ModuleErrorCodes($callingModule, $severity); - my $logItem = new LogItem(msg => $message, code => $code, severity => $severity, depth => $depth); - &WriteToFile($logItem->LogText()); - } - -#------------------------------------------------------------------------------------------------- -# Subroutine: LogFatal -# Purpose: Logs to the screen -# Input: Message Module Code -# Output: None -#------------------------------------------------------------------------------------------------- -sub LogFatal($$$) - { - my $message = $_[0]; - my $callingModule = $_[1]; - my $depth = $_[2] ? $_[2] : 0; - my $exitCode = $_[3] ? $_[3] : DepConstants::KFailure; - &Log("Fatal! ".$message, $callingModule, DepConstants::ERROR, $depth); - exit $exitCode; - } - -#------------------------------------------------------------------------------------------------- -# Subroutine: LogError -# Purpose: Logs to the screen -# Input: Message Module Code -# Output: None -#------------------------------------------------------------------------------------------------- -sub LogError($$$) - { - my $message = $_[0]; - my $callingModule = $_[1]; - my $depth = $_[2] ? $_[2] : 0; - &Log($message, $callingModule, DepConstants::ERROR, $depth); - } - -#------------------------------------------------------------------------------------------------- -# Subroutine: LogWarning -# Purpose: Logs to the screen -# Input: Message Module Code -# Output: None -#------------------------------------------------------------------------------------------------- -sub LogWarning($$$) - { - # first check the severity level: - return if $SEVERITY < DepConstants::WARNING; - - my $message = $_[0]; - my $callingModule = $_[1]; - my $depth = $_[2] ? $_[2] : 0; - &Log($message, $callingModule, DepConstants::WARNING, $depth); - } - -#------------------------------------------------------------------------------------------------- -# Subroutine: LogInfo -# Purpose: Logs to the screen -# Input: Message Module Code -# Output: None -#------------------------------------------------------------------------------------------------- -sub LogInfo($$$) - { - # first check the severity level: - return if $SEVERITY < DepConstants::INFO; - - my $message = $_[0]; - my $callingModule = $_[1]; - my $depth = $_[2] ? $_[2] : 0; - &Log($message, $callingModule, DepConstants::INFO, $depth); - } - -#------------------------------------------------------------------------------------------------- -# Subroutine: LogRaw -# Purpose: Logs a piece of raw text to the screen -# Input: Messsage string -# Output: None -#------------------------------------------------------------------------------------------------- -sub LogRaw($) - { - # only log raw text if the warning level is on info - i.e. the most verbose: - return if $SEVERITY < DepConstants::INFO; - &WriteToFile($_[0]); - } - -#------------------------------------------------------------------------------------------------- -# Subroutine: LogList -# Purpose: Logs a list of log items -# Input: array of logs starting with ERROR, WARNING or Note -# Output: None -#------------------------------------------------------------------------------------------------- -sub LogList - { - foreach $log (@_) - { - $log.="\n"; - if($log=~s/^ERROR:\s*//) - { - &LogError($log,DepConstants::KUnknownModuleError,1); - } - elsif($log=~s/^WARNING:\s*//) - { - &LogWarning($log,DepConstants::KUnknownModuleError,1); - } - elsif($log=~s/^Note:\s*//) - { - &LogInfo($log,DepConstants::KUnknownModuleError,1); - } - else - { - &LogRaw($log); - } - } - } - -#------------------------------------------------------------------------------------------------- -# Subroutine: WriteToFile -# Purpose: -# Input: A message string -# Output: None -#------------------------------------------------------------------------------------------------- -sub WriteToFile() - { - my $message = shift; - if ($LOGFILE ne "") - { - open(LOGFILE, ">> $LOGFILE") or die "Can't open the log file '$LOGFILE': $!"; - print LOGFILE $message; - } - else - { - print $message; # print to stdout - } - } - -1;