New, yet primitive version of log writing functionality. Fixed some things in utils.

This commit is contained in:
vraatikka
2013-06-25 21:14:03 +03:00
parent 33b5d9c62b
commit 8178e4e239
12 changed files with 2417 additions and 74 deletions

Binary file not shown.

1191
log_manager/log_manager.cc Normal file

File diff suppressed because it is too large Load Diff

65
log_manager/log_manager.h Normal file
View File

@ -0,0 +1,65 @@
typedef struct filewriter_st filewriter_t;
typedef struct logfile_st logfile_t;
typedef struct fnames_conf_st fnames_conf_t;
typedef struct logmanager_st logmanager_t;
typedef enum {
LOGFILE_FIRST = 0,
LOGFILE_TRACE = LOGFILE_FIRST,
LOGFILE_MESSAGE,
LOGFILE_ERROR,
LOGFILE_LAST = LOGFILE_ERROR
} logfile_id_t;
typedef enum { FILEWRITER_INIT, FILEWRITER_RUN, FILEWRITER_DONE }
filewriter_state_t;
typedef enum { LOGFILE_INIT, LOGFILE_OPENED, LOGFILE_DONE } logfile_state_t;
EXTERN_C_BLOCK_BEGIN
logmanager_t* skygw_logmanager_init(void** ctx, int argc, char* argv[]);
void skygw_logmanager_done(void** ctx, logmanager_t** lm);
int skygw_log_write(void* ctx, logmanager_t* lmgr, logfile_id_t id, char* str);
int skygw_log_flush(logmanager_t* lmgr, logfile_id_t id);
int skygw_log_write_flush(void* ctx,
logmanager_t* lmgr,
logfile_id_t id,
char* str);
EXTERN_C_BLOCK_END
const char* get_trace_prefix_default(void);
const char* get_trace_suffix_default(void);
const char* get_msg_prefix_default(void);
const char* get_msg_suffix_default(void);
const char* get_err_prefix_default(void);
const char* get_err_suffix_default(void);
const char* get_logpath_default(void);
/*
bool logfile_write(
skygw_ctx_t* ctx,
logmgr_t* mgr,
logfile_id_t id,
char* msg);
bool logfile_write_flush(
skygw_ctx_t* ctx,
logmgr_t* mgr,
logfile_id_t id,
char* msg);
bool logfile_flush(
logmgr_t* mgr,
logfile_id_t id);
bool logfile_init(
logmgr_t* mgr,
logfile_id_t id);
void logfile_done(
logmgr_t* mgr,
logfile_id_t id);
*/

38
log_manager/makefile Normal file
View File

@ -0,0 +1,38 @@
include ../build_gateway.inc
include ../makefile.inc
CC = gcc
CPP = g++
LOG_WRITER_PATH := $(shell pwd)
makeall: clean all
clean:
make -C ../utils clean
- $(DEL) *.o
- $(DEL) *.so
- $(DEL) *.so.1.0.1
- $(DEL) *~
all: utils lib
utils:
make -C $(ROOT_PATH)/utils clean all
$(COPY) $(ROOT_PATH)/utils/skygw_utils.o ./
lib: libcomp liblink
libcomp:
$(CPP) -c $(CFLAGS) \
-I$(MARIADB_SRC_PATH)/include/ \
-I../utils/ -I./ \
-fPIC ./log_manager.cc -o log_manager.o $(LDLIBS)
liblink:
$(CPP) -shared \
-Wl,-soname,liblog_manager.so \
-o liblog_manager.so.1.0.1 log_manager.o \
$(LDLIBS) $(CPP_LDLIBS)
$(DEL) ./liblog_manager.so
$(LINK) ./liblog_manager.so.1.0.1 ./liblog_manager.so

BIN
log_manager/test/core Normal file

Binary file not shown.

34
log_manager/test/makefile Normal file
View File

@ -0,0 +1,34 @@
include ../../build_gateway.inc
include ../../makefile.inc
CC = gcc
CPP = g++
TESTPATH := $(shell pwd)
LOG_MANAGER_PATH := $(ROOT_PATH)/log_manager
TESTAPP = $(TESTPATH)/testlog
runtest: makeall testall
makeall: clean all
clean:
- $(DEL) *.o
- $(DEL) testlog
- $(DEL) *~
all: testcomp testall
testcomp:
$(CC) $(CFLAGS) \
-L$(LOG_MANAGER_PATH) \
-Wl,-rpath,$(LOG_MANAGER_PATH)/ \
-o testlog -DSS_DEBUG \
-I$(SOLIDDB_SRC_PATH)/include \
-I$(MARIADB_SRC_PATH)/include \
-I$(LOG_MANAGER_PATH) -I$(ROOT_PATH)/utils testlog.c \
-llog_manager $(LDLIBS) \
$(LOG_MANAGER_PATH)/skygw_utils.o
testall:
- $(LAUNCH_DEBUGGER) $(TESTAPP) $(BACKGR)

View File

@ -0,0 +1,65 @@
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
Warning:
Name: menubar
Class: XmRowColumn
XtGrabPointer failed.
(Annoyed? Try 'Edit->Preferences->General->Suppress X Warnings'!)
/bin/sh -c 'exec gdb -q -fullname '\''/home/raatikka/src/bazaar/shared/skygateway/log_manager/test/testlog'\''' [26040]: Agent wouldn't die (Terminated)
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
/bin/sh -c 'exec gdb -q -fullname '\''/home/raatikka/src/bazaar/shared/skygateway/log_manager/test/testlog'\''' [26458]: Agent wouldn't die (Terminated)
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.
WARNING:
UTF-8 charmap detected. Switching off UTF-8 as ddd has problems with it. See
README.SUSE for futher information. Use -x parameter to bypass this wrapper.

BIN
log_manager/test/testlog Executable file

Binary file not shown.

View File

@ -0,0 +1,45 @@
#include <stdio.h>
#include <string.h>
#include <skygw_utils.h>
#include <log_manager.h>
int main(int argc, char* argv[])
{
int err;
logmanager_t* lmgr;
char* logstr;
lmgr = skygw_logmanager_init(NULL, argc, argv);
logstr = strdup("My name is Tracey");
err = skygw_log_write(NULL, lmgr, LOGFILE_TRACE, logstr);
free(logstr);
logstr = strdup("My name is Stacey");
err = skygw_log_write_flush(NULL, lmgr, LOGFILE_TRACE, logstr);
free(logstr);
skygw_logmanager_done(NULL, &lmgr);
logstr = strdup("My name is Philip");
err = skygw_log_write(NULL, lmgr, LOGFILE_TRACE, logstr);
free(logstr);
lmgr = skygw_logmanager_init(NULL, argc, argv);
logstr = strdup("A terrible error has occurred!");
err = skygw_log_write_flush(NULL, lmgr, LOGFILE_ERROR, logstr);
free(logstr);
logstr = strdup("Hi, how are you?");
err = skygw_log_write(NULL, lmgr, LOGFILE_MESSAGE, logstr);
free(logstr);
logstr = strdup("I'm doing fine!");
err = skygw_log_write(NULL, lmgr, LOGFILE_MESSAGE, logstr);
free(logstr);
return_err:
skygw_logmanager_done(NULL, &lmgr);
return err;
}