Emu/source/common/Log.h

53 lines
1.1 KiB
C

// Copyright (C) 2007-2025 EQ2EMulator
// Licensed under GPL v3
#ifndef LOG_H_
#define LOG_H_
#include <string.h>
#include "../WorldServer/client.h"
#define LOG_BUFFER_SIZE 4096
#define LOG_CATEGORY(category) LOG_ ##category ,
enum LogCategory
{
#include "LogTypes.h"
NUMBER_OF_LOG_CATEGORIES
};
#define LOG_TYPE(category, type, level, color, enabled, logfile, console, client, str) category##__##type ,
enum LogType
{
#include "LogTypes.h"
NUMBER_OF_LOG_TYPES
};
extern const char* log_category_names[NUMBER_OF_LOG_CATEGORIES];
struct LogTypeStatus
{
int8 level;
int color;
bool enabled;
bool logfile;
bool console;
bool client;
LogCategory category;
const char *name;
const char *display_name;
};
extern LogTypeStatus* log_type_info;
void LogStart();
void LogStop();
int8 GetLoggerLevel(LogType type);
void LogWrite(LogType type, int8 log_level, const char *cat_text, const char *fmt, ...);
#ifdef PARSER
void ColorizeLog(int color, char *date, const char *display_name, const char *category, string buffer);
#endif
bool LogParseConfigs();
#endif