| @ -0,0 +1,90 @@ | |||||
| /******************************************************************************************* | |||||
| * | |||||
| * raylib [core] example - Custom logging | |||||
| * | |||||
| * Welcome to raylib! | |||||
| * | |||||
| * To test examples, just press F6 and execute raylib_compile_execute script | |||||
| * Note that compiled executable is placed in the same folder as .c file | |||||
| * | |||||
| * You can find all basic examples on C:\raylib\raylib\examples folder or | |||||
| * raylib official webpage: www.raylib.com | |||||
| * | |||||
| * Enjoy using raylib. :) | |||||
| * | |||||
| * This example has been created using raylib 2.0 (www.raylib.com) | |||||
| * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) | |||||
| * | |||||
| * Copyright (c) 2018 Ramon Santamaria (@raysan5) and Pablo Marcos Oltra (@pamarcos) | |||||
| * | |||||
| ********************************************************************************************/ | |||||
| #include "raylib.h" | |||||
| #include <stdio.h> // Required for: fopen(), fclose(), fputc(), fwrite(), printf(), fprintf(), funopen() | |||||
| #include <time.h> // Required for: time_t, tm, time(), localtime(), strftime() | |||||
| void logCustom(int msgType, const char *text, va_list args) | |||||
| { | |||||
| char timeStr[64]; | |||||
| time_t now = time(NULL); | |||||
| struct tm *tm_info = localtime(&now); | |||||
| strftime(timeStr, sizeof(timeStr), "%Y-%m-%d %H:%M:%S", tm_info); | |||||
| printf("[%s] ", timeStr); | |||||
| switch (msgType) | |||||
| { | |||||
| case LOG_INFO: printf("[INFO] : "); break; | |||||
| case LOG_ERROR: printf("[ERROR]: "); break; | |||||
| case LOG_WARNING: printf("[WARN] : "); break; | |||||
| case LOG_DEBUG: printf("[DEBUG]: "); break; | |||||
| default: break; | |||||
| } | |||||
| vprintf(text, args); | |||||
| printf("\n"); | |||||
| } | |||||
| int main(int argc, char* argv[]) | |||||
| { | |||||
| // Initialization | |||||
| //-------------------------------------------------------------------------------------- | |||||
| int screenWidth = 800; | |||||
| int screenHeight = 450; | |||||
| // First thing we do is setting our custom logger to ensure everything raylib logs | |||||
| // will use our own logger instead of its internal one | |||||
| SetTraceLogCallback(logCustom); | |||||
| InitWindow(screenWidth, screenHeight, "raylib [core] example - custom logging"); | |||||
| SetTargetFPS(60); | |||||
| //-------------------------------------------------------------------------------------- | |||||
| // Main game loop | |||||
| while (!WindowShouldClose()) // Detect window close button or ESC key | |||||
| { | |||||
| // Update | |||||
| //---------------------------------------------------------------------------------- | |||||
| // TODO: Update your variables here | |||||
| //---------------------------------------------------------------------------------- | |||||
| // Draw | |||||
| //---------------------------------------------------------------------------------- | |||||
| BeginDrawing(); | |||||
| ClearBackground(RAYWHITE); | |||||
| DrawText("Check out the console output to see the custom logger in action!", 60, 200, 20, LIGHTGRAY); | |||||
| EndDrawing(); | |||||
| //---------------------------------------------------------------------------------- | |||||
| } | |||||
| // De-Initialization | |||||
| //-------------------------------------------------------------------------------------- | |||||
| CloseWindow(); // Close window and OpenGL context | |||||
| //-------------------------------------------------------------------------------------- | |||||
| return 0; | |||||
| } | |||||