/* 
 * File:   cKlinkDebug.h
 * Author: john
 *
 * Created on 06 May 2011, 10:02 AM
 */

#ifndef CKLINKDEBUG_H
#define	CKLINKDEBUG_H

#include <cKlinkEnumeratedList.h>

class cKlinkDebug
{
public:
    cKlinkDebug(const char * tag,int lvl);
    virtual ~cKlinkDebug();
    void dbg(int lvl,const char * fmt,...);
    static void dbg(const char * tag,int lvl,const char * fmt,...);

    enum eDebugLevel
    {
        CRITICAL,
        MAJOR,
        ERROR,
        WARNING,
        INFO,
        DEBUG
    };
private:   
    static cKlinkEnumeratedList<cKlinkDebug> mDebugClasses;
    char * mTag;
    int mLevel;
    static int mGlobalLevel; 
};

#endif	/* CKLINKDEBUG_H */

