logging tweaks

master
mrb 14 years ago
parent cadfcec881
commit 958c6f3295

@ -1,13 +1,9 @@
OUT=webdis OUT=webdis
HIREDIS_OBJ=hiredis/hiredis.o hiredis/sds.o hiredis/net.o hiredis/async.o hiredis/dict.o HIREDIS_OBJ=hiredis/hiredis.o hiredis/sds.o hiredis/net.o hiredis/async.o hiredis/dict.o
JANSSON_OBJ=jansson/src/dump.o jansson/src/error.o jansson/src/hashtable.o jansson/src/load.o jansson/src/strbuffer.o jansson/src/utf.o jansson/src/value.o jansson/src/variadic.o JANSSON_OBJ=jansson/src/dump.o jansson/src/error.o jansson/src/hashtable.o jansson/src/load.o jansson/src/strbuffer.o jansson/src/utf.o jansson/src/value.o jansson/src/variadic.o
<<<<<<< HEAD
FORMAT_OBJS=formats/json.o formats/raw.o formats/common.o
OBJS=webdis.o conf.o $(FORMAT_OBJS) cmd.o slog.o server.o $(HIREDIS_OBJ) $(JANSSON_OBJ) libb64/cencode.o acl.o
=======
FORMAT_OBJS=formats/json.o formats/raw.o formats/common.o formats/custom-type.o FORMAT_OBJS=formats/json.o formats/raw.o formats/common.o formats/custom-type.o
OBJS=webdis.o conf.o $(FORMAT_OBJS) cmd.o server.o $(HIREDIS_OBJ) $(JANSSON_OBJ) libb64/cencode.o acl.o OBJS=webdis.o conf.o $(FORMAT_OBJS) cmd.o slog.o server.o $(HIREDIS_OBJ) $(JANSSON_OBJ) libb64/cencode.o acl.o
>>>>>>> d8298c355662c701727ae270897923bdbfa58aac
CFLAGS=-O3 -Wall -Wextra -I. -Ijansson/src CFLAGS=-O3 -Wall -Wextra -I. -Ijansson/src
LDFLAGS=-levent LDFLAGS=-levent

@ -33,6 +33,7 @@ conf_read(const char *filename) {
conf->user = getuid(); conf->user = getuid();
conf->group = getgid(); conf->group = getgid();
conf->logfile = "webdis.log"; conf->logfile = "webdis.log";
conf->verbosity = WEBDIS_VERBOSE;
j = json_load_file(filename, 0, &error); j = json_load_file(filename, 0, &error);
if(!j) { if(!j) {
@ -69,6 +70,8 @@ conf_read(const char *filename) {
} }
} else if(strcmp(json_object_iter_key(kv),"logfile") == 0 && json_typeof(jtmp) == JSON_STRING){ } else if(strcmp(json_object_iter_key(kv),"logfile") == 0 && json_typeof(jtmp) == JSON_STRING){
conf->logfile = strdup(json_string_value(jtmp)); conf->logfile = strdup(json_string_value(jtmp));
} else if(strcmp(json_object_iter_key(kv),"verbosity") == 0 && json_typeof(jtmp) == JSON_INTEGER){
conf->verbosity = (short)json_integer_value(jtmp);
} }
} }

@ -1,8 +1,16 @@
#ifndef CONF_H #ifndef CONF_H
#define CONF_H #define CONF_H
#define WEBDIS_VERBOSE 0
#define WEBDIS_QUIET 1
#define WEBDIS_SILENT 2
#include <sys/types.h> #include <sys/types.h>
typedef enum {
WARNING = 0
} log_level;
struct conf { struct conf {
/* connection to Redis */ /* connection to Redis */
@ -21,8 +29,9 @@ struct conf {
uid_t user; uid_t user;
gid_t group; gid_t group;
/* Logfile */ /* Logging */
char *logfile; char *logfile;
log_level verbosity;
}; };
struct conf * struct conf *

@ -131,12 +131,12 @@ on_request(struct evhttp_request *rq, void *ctx) {
/* check that the command can be executed */ /* check that the command can be executed */
switch(rq->type) { switch(rq->type) {
case EVHTTP_REQ_GET: case EVHTTP_REQ_GET:
slog(s->cfg->logfile,1, uri); webdis_log(s,1,uri);
ret = cmd_run(s, rq, 1+uri, strlen(uri)-1); ret = cmd_run(s, rq, 1+uri, strlen(uri)-1);
break; break;
case EVHTTP_REQ_POST: case EVHTTP_REQ_POST:
slog(s->cfg->logfile,1, uri); webdis_log(s,1,uri);
ret = cmd_run(s, rq, ret = cmd_run(s, rq,
(const char*)EVBUFFER_DATA(rq->input_buffer), (const char*)EVBUFFER_DATA(rq->input_buffer),
EVBUFFER_LENGTH(rq->input_buffer)); EVBUFFER_LENGTH(rq->input_buffer));
@ -144,7 +144,7 @@ on_request(struct evhttp_request *rq, void *ctx) {
default: default:
printf("405\n"); printf("405\n");
slog(s->cfg->logfile,2, uri); webdis_log(s,1,"405");
evhttp_send_reply(rq, 405, "Method Not Allowed", NULL); evhttp_send_reply(rq, 405, "Method Not Allowed", NULL);
return; return;
} }
@ -181,3 +181,9 @@ server_start(struct server *s) {
event_base_dispatch(s->base); event_base_dispatch(s->base);
} }
void
webdis_log(struct server *s, int level, const char *body){
if(level > (int)s->cfg->verbosity){
slog(s->cfg->logfile,level,body);
}
}

@ -31,5 +31,8 @@ server_copy(const struct server *s);
void void
server_start(struct server *s); server_start(struct server *s);
void
webdis_log(struct server *s, int level, const char *body);
#endif #endif

@ -16,5 +16,7 @@
"http_basic_auth": "user:password", "http_basic_auth": "user:password",
"enabled": ["DEBUG"] "enabled": ["DEBUG"]
} }
] ],
"verbosity": 0,
"logfile": "webdis.log"
} }

Loading…
Cancel
Save