/*******************************************************************************
*  LogWriter.cpp - Write logs for berzerk
*
*  Berzerk/
*
*  Part of the BuckoSoft Network Monitor
*  Copyright(c) 2009 - BuckoSoft, Inc.
*
*  http://git.buckosoft.com/gitweb/?p=Berzerk.git;a=history;f=Berzerk/LogWriter.cpp
*
\*******************************************************************************/

#include "stdafx.h"
#include "../config.h"

#include <string>
#include <iostream>
#include <fstream>
#include <time.h>

#include <boost/foreach.hpp>
#include <boost/algorithm/string.hpp>

using namespace std;
using namespace boost;

#include "LogWriter.h"
#include "Berzerk.h"

int LogWriter::DEBUG = 0;


///////////////////////////////////////////////////////////////////////////////
LogWriter::LogWriter() {
	logFileName = VARLOG_DIR;
	logFileName += "/berzerk.log";
	berzerk = NULL;
	logLevel = 1;
}

///////////////////////////////////////////////////////////////////////////////
void LogWriter::log(int level, const char* logLine) {

	if (level > this->logLevel)
		return;

	ofstream	file;

	file.open(logFileName.c_str(), ios::app | ios::out);
	if (file.good()) {
		file << getTimestamp() << " " << logLine << endl;
	}
	file.close();

}

///////////////////////////////////////////////////////////////////////////////
string	LogWriter::getTimestamp() {
	char	s[256];
	struct tm*	tm;
	time_t t = time(NULL);
	tm = localtime(&t);
	//tm = gmtime(&t);
	strftime(s, 255, logFmt.c_str(), tm);
	string st = s;
	return(st);
}
