58 lines
1.2 KiB
C++

//----------------------------------------------------------------------------
//
// Copyright (C) Intel Corporation, 2006 - 2007.
//
// File: Logger.h
//
// Contents: Handles the logging mechanism of the MPS.
//
// Notes:
//----------------------------------------------------------------------------
#ifndef _Logger_H__
#define _Logger_H__
#include <ace/Logging_Strategy.h>
#include <ace/Log_Msg.h>
#include "ObserverPattern.h"
#include "OptionsUtils.h"
#define LOG_FILE_SIZE_SAMPLE_INTERVAL "5"
class Logger : public Observer_Pattern_Observer
{
public:
Logger() : _init(false) {}
STATUS init(const char * logFileName);
~Logger() {}
bool checkInit() { return _init; }
int update()
{
if (!checkInit())
{
ACE_ERROR_RETURN((LM_ERROR, "Cannot update Logger since it was not initialized.\n"), STATUS_FAILURE);
}
u_long mask = priorities(getTraceLevel()->c_str());
ACE_LOG_MSG->priority_mask(mask, ACE_Log_Msg::PROCESS);
return 0;
}
void close();
private:
bool _init;
ACE_Logging_Strategy _logging_strategy;
// Parse the string containing (thread) priorities and set them
// accordingly. This function is a modified ACE function.
u_long priorities(const ACE_TCHAR *priority_string);
};
#endif /* _Logger_H__ */