| /******************************************************************************* |
| * Copyright (c) 2009 Nokia and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Nokia - Initial API and implementation |
| *******************************************************************************/ |
| |
| #include "Logger.h" |
| #include "TCFHeaders.h" |
| |
| Logger* Logger::defaultLogger = NULL; |
| |
| Logger::Logger(const char* name) { |
| loggerName = name; |
| // main agent driver should call this if it wants logging |
| // open_log_file("C:\\EDC_Win_Agent_Log.txt"); |
| } |
| |
| Logger::~Logger(void) { |
| } |
| |
| Logger& Logger::getLogger() { |
| if (defaultLogger == NULL) |
| defaultLogger = new Logger("default"); |
| ; |
| return *defaultLogger; |
| } |
| |
| Logger& Logger::getLogger(const char* name) { |
| if (defaultLogger == NULL) |
| defaultLogger = new Logger("default"); |
| ; |
| return *defaultLogger; |
| } |
| |
| void Logger::Log(int level, const std::string& msg) { |
| Log(level, "%s", msg.c_str()); |
| } |
| |
| void Logger::Log(int level, const char* fmt, ...) { |
| char tmpbuf[1000]; |
| va_list ap; |
| va_start(ap, fmt); |
| vsnprintf(tmpbuf, sizeof(tmpbuf), fmt, ap); |
| va_end(ap); |
| trace(LOG_ALWAYS, "%s", tmpbuf); |
| } |
| |
| LogTrace::LogTrace(const char* traceName) { |
| this->traceName = traceName; |
| std::string tracemsg(traceName); |
| tracemsg += "\tentry\t"; |
| Logger::getLogger().Log(Logger::LOG_NORMAL, tracemsg); |
| } |
| |
| LogTrace::LogTrace(const char* traceName, const char * fmt, ...) { |
| char tmpbuf[1000]; |
| this->traceName = traceName; |
| std::string format(traceName); |
| format += "\tentry\t"; |
| format += fmt; |
| va_list ap; |
| va_start(ap, fmt); |
| vsnprintf(tmpbuf, sizeof(tmpbuf), (char*) format.c_str(), ap); |
| va_end(ap); |
| Logger::getLogger().Log(Logger::LOG_NORMAL, tmpbuf, ap); |
| } |
| |
| LogTrace::~LogTrace() { |
| this->traceName = traceName; |
| std::string tracemsg(traceName); |
| tracemsg += "\texit"; |
| Logger::getLogger().Log(Logger::LOG_NORMAL, tracemsg); |
| } |