diff -r 000000000000 -r ba25891c3a9e secureswitools/swisistools/source/common/logs.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/common/logs.cpp Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,85 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* xmllogger.cpp +* CLogger - Used to log details to the specified log files. +* +*/ + + +/** + @file + @released + @internalTechnology +*/ + +#include "logs.h" +#include "exception.h" +#include +#include + +std::ostream* LogDetails::LogStream = NULL; +int LogDetails::LogLevel = 0; + +DllExport CLogger::CLogger(std::string& aLogFileName, CLogger::TLogLevel aLogLevel) + { + if(LogDetails::LogStream) + { + throw CException("Log file already initialized"); + } + + + LogDetails::LogStream = new std::ofstream(aLogFileName.c_str(), std::ios::out | std::ios::app); + + LogDetails::LogLevel = aLogLevel; + } + +DllExport CLogger::~CLogger() + { + delete LogDetails::LogStream; + } + +/** + Logs the details based on the logging parameters. + + @param aMessage: Message to be logged in. + @param aXmlParams: Logging parameters based on which message is to be logged. + */ +DllExport void CLogger::Log(const char* aMessage) + { + if(LogDetails::LogStream == NULL) + { + std::string streamUnintialized = "Stream has not been initialized"; + throw CException(streamUnintialized, ExceptionCodes::EUnintializedCode); + } + + *LogDetails::LogStream << aMessage << std::endl; + } + +/** + Logs the details based on the logging parameters. + + @param aMessage: Message to be logged in. + @param aXmlParams: Logging parameters based on which message is to be logged. + */ +DllExport void CLogger::Log(std::string& aMessage) + { + Log(aMessage.c_str()); + } + + +DllExport std::ostream& CLogger::GetStream() + { + return *LogDetails::LogStream; + } \ No newline at end of file