online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <stdio.h> #include <string.h> enum LogLevel {DEBUG=10, INFO=20, WARN=30, ERROR=40}; typedef struct logger { int level; FILE** handlers; // NULL for sentinel } Logger; Logger LOGGER; char* level_str(int level) { switch (level) { case DEBUG: return "DEBUG"; case INFO: return "INFO"; case WARN: return "WARN"; case ERROR: return "ERROR"; default: return "UNKNOWN"; }; } void logger(char* msg, int level) { // skip if level is too low or no handlers set up if (level < LOGGER.level || !LOGGER.handlers) return; // write to each handler for (int i=0; LOGGER.handlers[i]; i++) fprintf(LOGGER.handlers[i], "[%s] %s\n", level_str(level), msg); } int main(void) { LOGGER.level = DEBUG; FILE* handler1 = stderr; FILE* handler2 = fopen("z_log.txt", "w"); LOGGER.handlers = &handler1; LOGGER.handlers[1] = handler2; LOGGER.handlers[2] = NULL; logger("Hello", INFO); return 0; }
[INFO] Hello

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue