diff options
author | David Walter Seikel | 2014-04-27 16:48:07 +1000 |
---|---|---|
committer | David Walter Seikel | 2014-04-27 16:48:07 +1000 |
commit | 568c8829db2f886921c7592cadbadbf4241127b6 (patch) | |
tree | 0af400526db683fa4ff5fb18a7eb2f685795fd04 /src/libraries/LumbrJack.c | |
parent | Added stuff cut and pasted from the new Evas_3d examples, but they are broken... (diff) | |
download | SledjHamr-568c8829db2f886921c7592cadbadbf4241127b6.zip SledjHamr-568c8829db2f886921c7592cadbadbf4241127b6.tar.gz SledjHamr-568c8829db2f886921c7592cadbadbf4241127b6.tar.bz2 SledjHamr-568c8829db2f886921c7592cadbadbf4241127b6.tar.xz |
Centralise the PACKAGE_* stuff, move our libraries to lib, and shuffle stuff to suit.
Diffstat (limited to 'src/libraries/LumbrJack.c')
-rw-r--r-- | src/libraries/LumbrJack.c | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/libraries/LumbrJack.c b/src/libraries/LumbrJack.c new file mode 100644 index 0000000..084d916 --- /dev/null +++ b/src/libraries/LumbrJack.c | |||
@@ -0,0 +1,85 @@ | |||
1 | /* LumbrJack - a logging library that wraps Eina logging. | ||
2 | |||
3 | */ | ||
4 | |||
5 | |||
6 | #include "LumbrJack.h" | ||
7 | |||
8 | |||
9 | static char dateTime[DATE_TIME_LEN]; | ||
10 | |||
11 | static void _ggg_log_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args) | ||
12 | { | ||
13 | FILE *f = data; | ||
14 | char dt[DATE_TIME_LEN + 1]; | ||
15 | char fileTab[256], funcTab[256]; | ||
16 | |||
17 | getDateTime(NULL, dt, NULL); | ||
18 | dt[19] = '\0'; | ||
19 | if (12 > strlen(file)) | ||
20 | snprintf(fileTab, sizeof(fileTab), "%s\t\t", file); | ||
21 | else | ||
22 | snprintf(fileTab, sizeof(fileTab), "%s\t", file); | ||
23 | snprintf(funcTab, sizeof(funcTab), "\t%s", fnc); | ||
24 | fprintf(f, "%s ", dt); | ||
25 | if (f == stderr) | ||
26 | eina_log_print_cb_stderr(d, level, fileTab, funcTab, line, fmt, data, args); | ||
27 | else if (f == stdout) | ||
28 | eina_log_print_cb_stdout(d, level, fileTab, funcTab, line, fmt, data, args); | ||
29 | fflush(f); | ||
30 | } | ||
31 | |||
32 | int loggingStartup(char *name, int logDom) | ||
33 | { | ||
34 | if (logDom < 0) | ||
35 | { | ||
36 | logDom = eina_log_domain_register(name, NULL); | ||
37 | if (logDom < 0) | ||
38 | { | ||
39 | EINA_LOG_CRIT("could not register log domain '%s'", name); | ||
40 | return logDom; | ||
41 | } | ||
42 | } | ||
43 | eina_log_level_set(EINA_LOG_LEVEL_DBG); | ||
44 | eina_log_domain_level_set(name, EINA_LOG_LEVEL_DBG); | ||
45 | eina_log_print_cb_set(_ggg_log_print_cb, stderr); | ||
46 | |||
47 | // Shut up the excess debugging shit from EFL. | ||
48 | eina_log_domain_level_set("eo", EINA_LOG_LEVEL_WARN); | ||
49 | eina_log_domain_level_set("eldbus", EINA_LOG_LEVEL_WARN); | ||
50 | eina_log_domain_level_set("eet", EINA_LOG_LEVEL_WARN); | ||
51 | eina_log_domain_level_set("ecore", EINA_LOG_LEVEL_WARN); | ||
52 | eina_log_domain_level_set("ecore_audio", EINA_LOG_LEVEL_WARN); | ||
53 | eina_log_domain_level_set("ecore_con", EINA_LOG_LEVEL_WARN); | ||
54 | eina_log_domain_level_set("ecore_evas", EINA_LOG_LEVEL_WARN); | ||
55 | eina_log_domain_level_set("ecore_input_evas", EINA_LOG_LEVEL_WARN); | ||
56 | eina_log_domain_level_set("ecore_input_evas", EINA_LOG_LEVEL_WARN); | ||
57 | eina_log_domain_level_set("ecore_system_upower", EINA_LOG_LEVEL_WARN); | ||
58 | eina_log_domain_level_set("eio", EINA_LOG_LEVEL_WARN); | ||
59 | eina_log_domain_level_set("evas_main", EINA_LOG_LEVEL_WARN); | ||
60 | |||
61 | return logDom; | ||
62 | } | ||
63 | |||
64 | char *getDateTime(struct tm **nowOut, char *dateOut, time_t *timeOut) | ||
65 | { | ||
66 | struct tm *newTime; | ||
67 | time_t szClock; | ||
68 | char *date = dateTime; | ||
69 | |||
70 | // Get time in seconds | ||
71 | time(&szClock); | ||
72 | // Convert time to struct tm form | ||
73 | newTime = localtime(&szClock); | ||
74 | |||
75 | if (nowOut) | ||
76 | *nowOut = newTime; | ||
77 | if (dateOut) | ||
78 | date = dateOut; | ||
79 | if (timeOut) | ||
80 | *timeOut = szClock; | ||
81 | |||
82 | // format | ||
83 | strftime(date, DATE_TIME_LEN, "%d/%m/%Y %H:%M:%S\r", newTime); | ||
84 | return (dateTime); | ||
85 | } | ||