aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/libraries/LumbrJack.c
diff options
context:
space:
mode:
authorDavid Walter Seikel2014-04-27 16:48:07 +1000
committerDavid Walter Seikel2014-04-27 16:48:07 +1000
commit568c8829db2f886921c7592cadbadbf4241127b6 (patch)
tree0af400526db683fa4ff5fb18a7eb2f685795fd04 /src/libraries/LumbrJack.c
parentAdded stuff cut and pasted from the new Evas_3d examples, but they are broken... (diff)
downloadSledjHamr-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.c85
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
9static char dateTime[DATE_TIME_LEN];
10
11static 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
32int 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
64char *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}