Browse Subversion Repository
Contents of /common/LogManager.h
Parent Directory
| Revision Log
Revision 279 -
( show annotations)
( download)
( as text)
Wed Mar 12 05:28:19 2008 UTC
(16 years, 2 months ago)
by satofumi
File MIME type: text/x-chdr
File size: 2020 byte(s)
adjust tab index
| 1 |
#ifndef LOG_MANAGER_H |
| 2 |
#define LOG_MANAGER_H |
| 3 |
|
| 4 |
/*! |
| 5 |
\file |
| 6 |
\brief ログ管理クラス |
| 7 |
|
| 8 |
\author Satofumi KAMIMURA |
| 9 |
|
| 10 |
$Id$ |
| 11 |
|
| 12 |
\todo ID 番号で書き込みファイルを指定できるように変更する |
| 13 |
*/ |
| 14 |
|
| 15 |
#include <memory> |
| 16 |
|
| 17 |
|
| 18 |
namespace beego { |
| 19 |
/*! |
| 20 |
\brief ログ管理クラス |
| 21 |
*/ |
| 22 |
class LogManager { |
| 23 |
LogManager(void); |
| 24 |
LogManager(const LogManager& rhs); |
| 25 |
LogManager& operator = (const LogManager& rhs); |
| 26 |
|
| 27 |
struct pImpl; |
| 28 |
const std::auto_ptr<pImpl> pimpl; |
| 29 |
|
| 30 |
public: |
| 31 |
/*! |
| 32 |
\brief エラーレベル |
| 33 |
*/ |
| 34 |
typedef enum { |
| 35 |
NoWrite = 0, //!< 全メッセージの無視 |
| 36 |
Attack, //!< クラック |
| 37 |
Error, //!< エラー |
| 38 |
Warning, //!< 警告 |
| 39 |
Notice, //!< 注意 |
| 40 |
All, //!< 全メッセージの記録 |
| 41 |
} ErrorLevel; |
| 42 |
|
| 43 |
~LogManager(void); |
| 44 |
static LogManager* getObject(int id = 0); |
| 45 |
|
| 46 |
/*! |
| 47 |
\brief ログファイル名を指定する |
| 48 |
|
| 49 |
この関数は、最初に write() が呼ばれる前に呼び出されなければならない。 |
| 50 |
|
| 51 |
\param fileName [i] ログファイル名 |
| 52 |
*/ |
| 53 |
void setFileName(const char* fileName, int id = 0); |
| 54 |
|
| 55 |
|
| 56 |
/*! |
| 57 |
\brief ファイルに記録しないエラーレベルを指定する |
| 58 |
|
| 59 |
指定されたエラーレベルよりも低い記録をファイルに書き込まない。 |
| 60 |
|
| 61 |
\param mask [i] 書き込みを行うエラーレベル |
| 62 |
|
| 63 |
\code |
| 64 |
LogManager* log = LogManager::getObject(); |
| 65 |
log->setFileName("error_log.txt"); |
| 66 |
|
| 67 |
// Warning, Notice はファイルに書き込まれなくなる |
| 68 |
log->setLogMask(Error); |
| 69 |
... |
| 70 |
|
| 71 |
log->write(Error, "error!"); // 書き込まれる |
| 72 |
log->write(Warning, "warning!"); // 書き込まれない |
| 73 |
\endcode |
| 74 |
*/ |
| 75 |
void setLogMask(const ErrorLevel level, int id = 0); |
| 76 |
|
| 77 |
|
| 78 |
/*! |
| 79 |
\brief ログにメッセージを書き込む |
| 80 |
|
| 81 |
このメソッド毎にメッセージは改行されて記録される。 |
| 82 |
|
| 83 |
\param level [i] ログレベル |
| 84 |
\param message [i] メッセージ |
| 85 |
*/ |
| 86 |
void write(const ErrorLevel level, const char* message); |
| 87 |
}; |
| 88 |
}; |
| 89 |
|
| 90 |
#endif /* !LOG_MANAGER_H */ |
| |