add possibility to logger 'textlog' to print full content of buffers
This commit is contained in:
@@ -20,6 +20,8 @@ logger *new_iqlog(void *event_handler, void *database,
|
|||||||
void framelog_set_skip(logger *_this, int skip_delay);
|
void framelog_set_skip(logger *_this, int skip_delay);
|
||||||
void framelog_set_update_only_at_sf9(logger *_this, int update_only_at_sf9);
|
void framelog_set_update_only_at_sf9(logger *_this, int update_only_at_sf9);
|
||||||
|
|
||||||
|
void textlog_dump_buffer(logger *_this, int dump_buffer);
|
||||||
|
|
||||||
#include "view/view.h"
|
#include "view/view.h"
|
||||||
|
|
||||||
void logger_add_view(logger *l, view *v);
|
void logger_add_view(logger *l, view *v);
|
||||||
|
|||||||
@@ -32,12 +32,13 @@ struct textlog {
|
|||||||
int fsize;
|
int fsize;
|
||||||
/* local output buffer */
|
/* local output buffer */
|
||||||
OBUF o;
|
OBUF o;
|
||||||
|
int dump_buffer;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void _event(void *p, event e)
|
static void _event(void *p, event e)
|
||||||
{
|
{
|
||||||
struct textlog *l = p;
|
struct textlog *l = p;
|
||||||
int i;
|
int i, j;
|
||||||
#ifdef T_SEND_TIME
|
#ifdef T_SEND_TIME
|
||||||
struct tm *t;
|
struct tm *t;
|
||||||
char tt[64];
|
char tt[64];
|
||||||
@@ -65,6 +66,14 @@ static void _event(void *p, event e)
|
|||||||
case BUFFER:
|
case BUFFER:
|
||||||
PUTS(&l->o, "{buffer size:");
|
PUTS(&l->o, "{buffer size:");
|
||||||
PUTI(&l->o, e.e[l->f[i].event_arg].bsize);
|
PUTI(&l->o, e.e[l->f[i].event_arg].bsize);
|
||||||
|
if (l->dump_buffer) {
|
||||||
|
PUTS(&l->o, " [");
|
||||||
|
for (j = 0; j < e.e[l->f[i].event_arg].bsize; j++) {
|
||||||
|
PUTX2(&l->o, ((unsigned char *)e.e[l->f[i].event_arg].b)[j]);
|
||||||
|
PUTC(&l->o, ' ');
|
||||||
|
}
|
||||||
|
PUTS(&l->o, "]");
|
||||||
|
}
|
||||||
PUTS(&l->o, "}");
|
PUTS(&l->o, "}");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -196,3 +205,13 @@ error:
|
|||||||
printf("%s:%d: bad format '%s'\n", __FILE__, __LINE__, format);
|
printf("%s:%d: bad format '%s'\n", __FILE__, __LINE__, format);
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
/* public functions */
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
void textlog_dump_buffer(logger *_this, int dump_buffer)
|
||||||
|
{
|
||||||
|
struct textlog *l = _this;
|
||||||
|
l->dump_buffer = dump_buffer;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user