| @ -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; | |||
| } | |||