Move log_fp to g_extern.

Rework logger macros to use g_extern.log_file is it's non NULL.
Otherwise, fallback to stderr.
This commit is contained in:
Themaister 2012-11-26 16:59:00 +01:00
parent 4b3ac3c04e
commit 2c41fe7288
5 changed files with 46 additions and 53 deletions

View File

@ -590,6 +590,9 @@ struct global
#endif
} file_state;
// If this is non-NULL. RARCH_LOG and friends will write to this file.
FILE *log_file;
bool error_in_init;
char error_string[1024];
jmp_buf error_sjlj_context;

View File

@ -146,7 +146,7 @@ int gx_logger_net(struct _reent *r, int fd, const char *ptr, size_t len)
#elif defined(HAVE_FILE_LOGGER)
int gx_logger_file(struct _reent *r, int fd, const char *ptr, size_t len)
{
fwrite(ptr, 1, len, log_fp);
fwrite(ptr, 1, len, g_extern.log_file);
return len;
}
#endif
@ -489,7 +489,7 @@ int main(int argc, char *argv[])
dotab_stdout.write_r = gx_logger_net;
#elif defined(HAVE_FILE_LOGGER)
g_extern.verbose = true;
log_fp = fopen("/retroarch-log.txt", "w");
g_extern.log_file = fopen("/retroarch-log.txt", "w");
devoptab_list[STD_OUT] = &dotab_stdout;
devoptab_list[STD_ERR] = &dotab_stdout;
dotab_stdout.write_r = gx_logger_file;
@ -608,7 +608,9 @@ begin_shutdown:
#ifdef HAVE_LOGGER
logger_shutdown();
#elif defined(HAVE_FILE_LOGGER)
fclose(log_fp);
if (g_extern.log_file)
fclose(g_extern.log_file);
g_extern.log_file = NULL;
#endif
if(g_extern.console.external_launch.enable)

View File

@ -111,7 +111,7 @@ int main(int argc, char *argv[])
g_extern.verbose = true;
#ifdef HAVE_FILE_LOGGER
log_fp = fopen("ms0:/retroarch-log.txt", "w");
g_extern.log_file = fopen("ms0:/retroarch-log.txt", "w");
#endif
get_environment_settings(argc, argv);
@ -185,7 +185,9 @@ begin_shutdown:
g_extern.verbose = false;
#ifdef HAVE_FILE_LOGGER
fclose(log_fp);
if (g_extern.log_file)
fclose(g_extern.log_file);
g_extern.log_file = NULL;
#endif
sceKernelExitGame();

View File

@ -56,10 +56,6 @@
#define RARCH_PERFORMANCE_MODE
#endif
#ifdef HAVE_FILE_LOGGER
FILE *log_fp;
#endif
// To avoid continous switching if we hold the button down, we require that the button must go from pressed, unpressed back to pressed to be able to toggle between then.
static void set_fast_forward_button(bool new_button_state, bool new_hold_button_state)
{
@ -2555,11 +2551,6 @@ static void init_state(void)
g_extern.video_active = true;
g_extern.audio_active = true;
g_extern.game_type = RARCH_CART_NORMAL;
#if defined(HAVE_FILE_LOGGER) && !defined(RARCH_CONSOLE)
snprintf(g_extern.default_log_file, sizeof(g_extern.default_log_file), "/retroarch-log.txt");
log_fp = fopen(g_extern.default_log_file, "w");
#endif
}
void rarch_main_clear_state(void)
@ -2568,6 +2559,10 @@ void rarch_main_clear_state(void)
free(g_extern.system.environment);
free(g_extern.system.environment_split);
if (g_extern.log_file)
fclose(g_extern.log_file);
memset(&g_extern, 0, sizeof(g_extern));
init_state();
@ -2873,10 +2868,6 @@ int rarch_main(int argc, char *argv[])
#endif
rarch_main_clear_state();
#if defined(HAVE_FILE_LOGGER) && !defined(RARCH_CONSOLE)
fclose(log_fp);
#endif
return 0;
}

View File

@ -21,12 +21,7 @@
#include <android/log.h>
#endif
#ifdef HAVE_FILE_LOGGER
extern FILE * log_fp;
#define STDERR_OUT (log_fp)
#else
#define STDERR_OUT (stderr)
#endif
#define LOG_FILE (g_extern.log_file ? g_extern.log_file : stderr)
#if defined(RARCH_CONSOLE) && (defined(HAVE_LOGGER) || defined(_XBOX1))
#include <logger_override.h>
@ -34,18 +29,18 @@ extern FILE * log_fp;
#ifndef RARCH_LOG
#if defined(ANDROID)
#define RARCH_LOG(...) __android_log_print(ANDROID_LOG_INFO,"RetroArch: ",__VA_ARGS__)
#define RARCH_LOG(...) __android_log_print(ANDROID_LOG_INFO, "RetroArch: ", __VA_ARGS__)
#elif defined(IS_SALAMANDER)
#define RARCH_LOG(...) do { \
fprintf(STDERR_OUT, "RetroArch Salamander: " __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, "RetroArch Salamander: " __VA_ARGS__); \
fflush(LOG_FILE); \
} while (0)
#else
#define RARCH_LOG(...) do { \
if (g_extern.verbose) \
{ \
fprintf(STDERR_OUT, "RetroArch: " __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, "RetroArch: " __VA_ARGS__); \
fflush(LOG_FILE); \
} \
} while (0)
#endif
@ -56,15 +51,15 @@ extern FILE * log_fp;
#define RARCH_LOG_OUTPUT(...) __android_log_print(ANDROID_LOG_INFO,"stderr: ",__VA_ARGS__)
#elif defined(IS_SALAMANDER)
#define RARCH_LOG_OUTPUT(...) do { \
fprintf(STDERR_OUT, "stderr: " __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, "stderr: " __VA_ARGS__); \
fflush(LOG_FILE); \
} while (0)
#else
#define RARCH_LOG_OUTPUT(...) do { \
if (g_extern.verbose) \
{ \
fprintf(STDERR_OUT, __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, __VA_ARGS__); \
fflush(LOG_FILE); \
} \
} while (0)
#endif
@ -72,64 +67,64 @@ extern FILE * log_fp;
#ifndef RARCH_ERR
#if defined(ANDROID)
#define RARCH_ERR(...) __android_log_print(ANDROID_LOG_INFO, "RetroArch [ERROR] :: ",__VA_ARGS__)
#define RARCH_ERR(...) __android_log_print(ANDROID_LOG_INFO, "RetroArch [ERROR] :: ", __VA_ARGS__)
#elif defined(IS_SALAMANDER)
#define RARCH_ERR(...) do { \
fprintf(STDERR_OUT, "RetroArch Salamander [ERROR] :: " __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, "RetroArch Salamander [ERROR] :: " __VA_ARGS__); \
fflush(LOG_FILE); \
} while (0)
#else
#define RARCH_ERR(...) do { \
fprintf(STDERR_OUT, "RetroArch [ERROR] :: " __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, "RetroArch [ERROR] :: " __VA_ARGS__); \
fflush(LOG_FILE); \
} while (0)
#endif
#endif
#ifndef RARCH_ERR_OUTPUT
#if defined(ANDROID)
#define RARCH_ERR_OUTPUT(...) __android_log_print(ANDROID_LOG_INFO, "stderr [ERROR] :: ",__VA_ARGS__)
#define RARCH_ERR_OUTPUT(...) __android_log_print(ANDROID_LOG_INFO, "stderr [ERROR] :: ", __VA_ARGS__)
#elif defined(IS_SALAMANDER)
#define RARCH_ERR_OUTPUT(...) do { \
fprintf(STDERR_OUT, "stderr [ERROR] :: " __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, "stderr [ERROR] :: " __VA_ARGS__); \
fflush(LOG_FILE); \
} while (0)
#else
#define RARCH_ERR_OUTPUT(...) do { \
fprintf(STDERR_OUT, "stderr [ERROR] :: " __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, "stderr [ERROR] :: " __VA_ARGS__); \
fflush(LOG_FILE); \
} while (0)
#endif
#endif
#ifndef RARCH_WARN
#if defined(ANDROID)
#define RARCH_WARN(...) __android_log_print(ANDROID_LOG_INFO, "RetroArch [WARN] :: ",__VA_ARGS__)
#define RARCH_WARN(...) __android_log_print(ANDROID_LOG_INFO, "RetroArch [WARN] :: ", __VA_ARGS__)
#elif defined(IS_SALAMANDER)
#define RARCH_WARN(...) do { \
fprintf(STDERR_OUT, "RetroArch Salamander [WARN] :: " __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, "RetroArch Salamander [WARN] :: " __VA_ARGS__); \
fflush(LOG_FILE); \
} while (0)
#else
#define RARCH_WARN(...) do { \
fprintf(STDERR_OUT, "RetroArch [WARN] :: " __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, "RetroArch [WARN] :: " __VA_ARGS__); \
fflush(LOG_FILE); \
} while (0)
#endif
#endif
#ifndef RARCH_WARN
#if defined(ANDROID)
#define RARCH_WARN_OUTPUT(...) __android_log_print(ANDROID_LOG_INFO, "stderr [WARN] :: ",__VA_ARGS__)
#define RARCH_WARN_OUTPUT(...) __android_log_print(ANDROID_LOG_INFO, "stderr [WARN] :: ", __VA_ARGS__)
#elif defined(IS_SALAMANDER)
#define RARCH_WARN_OUTPUT(...) do { \
fprintf(STDERR_OUT, "stderr [WARN] :: " __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, "stderr [WARN] :: " __VA_ARGS__); \
fflush(LOG_FILE); \
} while (0)
#else
#define RARCH_WARN_OUTPUT(...) do { \
fprintf(STDERR_OUT, "stderr [WARN] :: " __VA_ARGS__); \
fflush(STDERR_OUT); \
fprintf(LOG_FILE, "stderr [WARN] :: " __VA_ARGS__); \
fflush(LOG_FILE); \
} while (0)
#endif
#endif