123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /*******************************************************************************************
- *
- * 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;
- }
|