94 lines
2.6 KiB
C++
94 lines
2.6 KiB
C++
/*
|
|
* This is the source code of tgnet library v. 1.0
|
|
* It is licensed under GNU GPL v. 2 or later.
|
|
* You should have received a copy of the license in this archive (see LICENSE).
|
|
*
|
|
* Copyright Nikolai Kudashov, 2015.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdarg.h>
|
|
#include <time.h>
|
|
#include "FileLog.h"
|
|
|
|
#ifdef ANDROID
|
|
#include <android/log.h>
|
|
#endif
|
|
|
|
FILE *logFile = nullptr;
|
|
|
|
void FileLog::init(std::string path) {
|
|
if (path.size() > 0) {
|
|
logFile = fopen(path.c_str(), "w");
|
|
}
|
|
}
|
|
|
|
void FileLog::e(const char *message, ...) {
|
|
va_list argptr;
|
|
va_start(argptr, message);
|
|
time_t t = time(0);
|
|
struct tm *now = localtime(&t);
|
|
#ifdef ANDROID
|
|
__android_log_vprint(ANDROID_LOG_ERROR, "tgnet", message, argptr);
|
|
#else
|
|
printf("%d-%d %02d:%02d:%02d error: ", now->tm_mon + 1, now->tm_mday, now->tm_hour, now->tm_min, now->tm_sec);
|
|
vprintf(message, argptr);
|
|
printf("\n");
|
|
fflush(stdout);
|
|
#endif
|
|
if (logFile) {
|
|
fprintf(logFile, "%d-%d %02d:%02d:%02d error: ", now->tm_mon + 1, now->tm_mday, now->tm_hour, now->tm_min, now->tm_sec);
|
|
vfprintf(logFile, message, argptr);
|
|
fprintf(logFile, "\n");
|
|
fflush(logFile);
|
|
}
|
|
|
|
va_end(argptr);
|
|
}
|
|
|
|
void FileLog::w(const char *message, ...) {
|
|
va_list argptr;
|
|
va_start(argptr, message);
|
|
time_t t = time(0);
|
|
struct tm *now = localtime(&t);
|
|
#ifdef ANDROID
|
|
__android_log_vprint(ANDROID_LOG_WARN, "tgnet", message, argptr);
|
|
#else
|
|
printf("%d-%d %02d:%02d:%02d warning: ", now->tm_mon + 1, now->tm_mday, now->tm_hour, now->tm_min, now->tm_sec);
|
|
vprintf(message, argptr);
|
|
printf("\n");
|
|
fflush(stdout);
|
|
#endif
|
|
if (logFile) {
|
|
fprintf(logFile, "%d-%d %02d:%02d:%02d warning: ", now->tm_mon + 1, now->tm_mday, now->tm_hour, now->tm_min, now->tm_sec);
|
|
vfprintf(logFile, message, argptr);
|
|
fprintf(logFile, "\n");
|
|
fflush(logFile);
|
|
}
|
|
|
|
va_end(argptr);
|
|
}
|
|
|
|
void FileLog::d(const char *message, ...) {
|
|
va_list argptr;
|
|
va_start(argptr, message);
|
|
time_t t = time(0);
|
|
struct tm *now = localtime(&t);
|
|
#ifdef ANDROID
|
|
__android_log_vprint(ANDROID_LOG_DEBUG, "tgnet", message, argptr);
|
|
#else
|
|
printf("%d-%d %02d:%02d:%02d debug: ", now->tm_mon + 1, now->tm_mday, now->tm_hour, now->tm_min, now->tm_sec);
|
|
vprintf(message, argptr);
|
|
printf("\n");
|
|
fflush(stdout);
|
|
#endif
|
|
if (logFile) {
|
|
fprintf(logFile, "%d-%d %02d:%02d:%02d debug: ", now->tm_mon + 1, now->tm_mday, now->tm_hour, now->tm_min, now->tm_sec);
|
|
vfprintf(logFile, message, argptr);
|
|
fprintf(logFile, "\n");
|
|
fflush(logFile);
|
|
}
|
|
|
|
va_end(argptr);
|
|
}
|