mirror of
https://github.com/albfan/miraclecast.git
synced 2025-02-12 13:51:55 +00:00
log messages with time in human readable way
This commit is contained in:
parent
380504b0f8
commit
72f61549d9
15 changed files with 144 additions and 29 deletions
|
@ -44,6 +44,8 @@ add_project_arguments('-DIP_BINARY='+get_option('ip-binary'), language: 'c')
|
|||
glib2 = dependency('glib-2.0')
|
||||
udev = dependency('libudev')
|
||||
|
||||
m = c_compiler.find_library('m', required: false)
|
||||
|
||||
subdir('src')
|
||||
subdir('res')
|
||||
|
||||
|
|
|
@ -168,9 +168,11 @@ function kill_network_manager {
|
|||
# ubuntu manager restarts automatically wpa_supplicant
|
||||
sudo service NetworkManager stop
|
||||
elif check_archlinux_distro
|
||||
then
|
||||
sudo systemctl stop Network.service
|
||||
else
|
||||
sudo systemctl stop Network.service
|
||||
sudo systemctl stop NetworkManager
|
||||
sudo systemctl stop wpa_supplicant
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -183,6 +185,9 @@ function start_network_manager {
|
|||
then
|
||||
sudo service NetworkManager start
|
||||
elif check_archlinux_distro
|
||||
then
|
||||
sudo systemctl start Network.service
|
||||
else
|
||||
sudo service NetworkManager start
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -32,6 +32,9 @@
|
|||
#include "ctl.h"
|
||||
#include "shl_macro.h"
|
||||
#include "shl_util.h"
|
||||
#include "shl_log.h"
|
||||
#include <math.h>
|
||||
#include <time.h>
|
||||
|
||||
/* *sigh* readline doesn't include all their deps, so put them last */
|
||||
#include <readline/history.h>
|
||||
|
@ -73,6 +76,37 @@ void cli_printv(const char *fmt, va_list args)
|
|||
rl_redisplay();
|
||||
}
|
||||
|
||||
long long sec, usec;
|
||||
time_t now;
|
||||
struct tm *timeinfo;
|
||||
struct timeval tv;
|
||||
char buffertmp[80];
|
||||
char buffer[80];
|
||||
int millisec;
|
||||
|
||||
|
||||
log__time(&sec, &usec);
|
||||
|
||||
if (log_date_time) {
|
||||
gettimeofday(&tv, NULL);
|
||||
millisec = lrint(tv.tv_usec/1000.0);
|
||||
if (millisec>=1000) {
|
||||
millisec -=1000;
|
||||
tv.tv_sec++;
|
||||
}
|
||||
|
||||
time(&now);
|
||||
timeinfo = localtime(&now);
|
||||
|
||||
strftime(buffertmp, 80, "%x - %X.%03d", timeinfo);
|
||||
sprintf(buffer, "%s.%03d", buffertmp, millisec);
|
||||
}
|
||||
|
||||
if (log_date_time)
|
||||
printf("[%s] ", buffer);
|
||||
else if (log__have_time())
|
||||
printf("[%.4lld.%.6lld] ", sec, usec);
|
||||
|
||||
vprintf(fmt, args);
|
||||
|
||||
if (async) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
inc = include_directories('../..')
|
||||
deps = [libsystemd, libmiracle_shared_dep, glib2]
|
||||
deps = [libsystemd, libmiracle_shared_dep, glib2, m]
|
||||
if readline.found()
|
||||
deps += readline
|
||||
endif
|
||||
|
|
|
@ -726,6 +726,9 @@ void cli_fn_help()
|
|||
" --help-commands Show available commands\n"
|
||||
" --version Show package version\n"
|
||||
" --log-level <lvl> Maximum level for log messages\n"
|
||||
" --log-time Prefix log-messages with timestamp\n"
|
||||
" --log-date-time Prefix log-messages with date time\n"
|
||||
"\n"
|
||||
" --log-journal-level <lvl> Maximum level for journal log messages\n"
|
||||
" --gst-debug [cat:]lvl[,...] List of categories an level of debug\n"
|
||||
" --audio <0/1> Enable audio support (default %d)\n"
|
||||
|
@ -813,6 +816,8 @@ static int parse_argv(int argc, char *argv[])
|
|||
enum {
|
||||
ARG_VERSION = 0x100,
|
||||
ARG_LOG_LEVEL,
|
||||
ARG_LOG_TIME,
|
||||
ARG_LOG_DATE_TIME,
|
||||
ARG_JOURNAL_LEVEL,
|
||||
ARG_GST_DEBUG,
|
||||
ARG_AUDIO,
|
||||
|
@ -825,8 +830,10 @@ static int parse_argv(int argc, char *argv[])
|
|||
static const struct option options[] = {
|
||||
{ "help", no_argument, NULL, 'h' },
|
||||
{ "help-commands", no_argument, NULL, ARG_HELP_COMMANDS },
|
||||
{ "version", no_argument, NULL, ARG_VERSION },
|
||||
{ "version" , no_argument, NULL, ARG_VERSION },
|
||||
{ "log-level", required_argument, NULL, ARG_LOG_LEVEL },
|
||||
{ "log-time", no_argument, NULL, ARG_LOG_TIME },
|
||||
{ "log-date-time", no_argument, NULL, ARG_LOG_DATE_TIME },
|
||||
{ "log-journal-level", required_argument, NULL, ARG_JOURNAL_LEVEL },
|
||||
{ "gst-debug", required_argument, NULL, ARG_GST_DEBUG },
|
||||
{ "audio", required_argument, NULL, ARG_AUDIO },
|
||||
|
@ -861,6 +868,12 @@ static int parse_argv(int argc, char *argv[])
|
|||
case ARG_LOG_LEVEL:
|
||||
cli_max_sev = log_parse_arg(optarg);
|
||||
break;
|
||||
case ARG_LOG_TIME:
|
||||
log_init_time();
|
||||
break;
|
||||
case ARG_LOG_DATE_TIME:
|
||||
log_date_time = true;
|
||||
break;
|
||||
case ARG_GST_DEBUG:
|
||||
gst_debug = optarg;
|
||||
break;
|
||||
|
|
|
@ -750,6 +750,7 @@ static int help(void)
|
|||
" --version Show package version\n"
|
||||
" --log-level <lvl> Maximum level for log messages\n"
|
||||
" --log-time Prefix log-messages with timestamp\n"
|
||||
" --log-date-time Prefix log-messages with date time\n"
|
||||
"\n"
|
||||
" --netdev <dev> Network device to run on\n"
|
||||
" --ip-binary <path> Path to 'ip' binary [default: "XSTR(IP_BINARY)"]\n"
|
||||
|
@ -775,6 +776,7 @@ static int parse_argv(int argc, char *argv[])
|
|||
ARG_VERSION = 0x100,
|
||||
ARG_LOG_LEVEL,
|
||||
ARG_LOG_TIME,
|
||||
ARG_LOG_DATE_TIME,
|
||||
|
||||
ARG_NETDEV,
|
||||
ARG_IP_BINARY,
|
||||
|
@ -794,6 +796,7 @@ static int parse_argv(int argc, char *argv[])
|
|||
{ "version", no_argument, NULL, ARG_VERSION },
|
||||
{ "log-level", required_argument, NULL, ARG_LOG_LEVEL },
|
||||
{ "log-time", no_argument, NULL, ARG_LOG_TIME },
|
||||
{ "log-date-time", no_argument, NULL, ARG_LOG_DATE_TIME },
|
||||
|
||||
{ "netdev", required_argument, NULL, ARG_NETDEV },
|
||||
{ "ip-binary", required_argument, NULL, ARG_IP_BINARY },
|
||||
|
@ -826,6 +829,9 @@ static int parse_argv(int argc, char *argv[])
|
|||
case ARG_LOG_TIME:
|
||||
log_init_time();
|
||||
break;
|
||||
case ARG_LOG_DATE_TIME:
|
||||
log_date_time = true;
|
||||
break;
|
||||
case ARG_NETDEV:
|
||||
arg_netdev = optarg;
|
||||
break;
|
||||
|
|
|
@ -7,5 +7,5 @@ miracle_dhcp_srcs = ['dhcp.c',
|
|||
executable('miracle-dhcp', miracle_dhcp_srcs,
|
||||
install: true,
|
||||
include_directories: include_directories('../..'),
|
||||
dependencies: [glib2, udev, libmiracle_shared_dep]
|
||||
dependencies: [glib2, udev, libmiracle_shared_dep, m]
|
||||
)
|
||||
|
|
|
@ -5,7 +5,7 @@ subdir('ctl')
|
|||
subdir('uibc')
|
||||
|
||||
executable('miracled', 'miracled.c',
|
||||
dependencies: libmiracle_shared_dep,
|
||||
dependencies: [libmiracle_shared_dep, m],
|
||||
include_directories: include_directories('..'),
|
||||
install: true
|
||||
)
|
||||
|
|
|
@ -66,6 +66,7 @@ static int help(void)
|
|||
" --version Show package version\n"
|
||||
" --log-level <lvl> Maximum level for log messages\n"
|
||||
" --log-time Prefix log-messages with timestamp\n"
|
||||
" --log-date-time Prefix log-messages with date time\n"
|
||||
, program_invocation_short_name);
|
||||
/*
|
||||
* 80-char barrier:
|
||||
|
@ -81,12 +82,14 @@ static int parse_argv(int argc, char *argv[])
|
|||
ARG_VERSION = 0x100,
|
||||
ARG_LOG_LEVEL,
|
||||
ARG_LOG_TIME,
|
||||
ARG_LOG_DATE_TIME,
|
||||
};
|
||||
static const struct option options[] = {
|
||||
{ "help", no_argument, NULL, 'h' },
|
||||
{ "version", no_argument, NULL, ARG_VERSION },
|
||||
{ "log-level", required_argument, NULL, ARG_LOG_LEVEL },
|
||||
{ "log-time", no_argument, NULL, ARG_LOG_TIME },
|
||||
{ "log-date-time", no_argument, NULL, ARG_LOG_DATE_TIME },
|
||||
{}
|
||||
};
|
||||
int c;
|
||||
|
@ -104,6 +107,9 @@ static int parse_argv(int argc, char *argv[])
|
|||
case ARG_LOG_TIME:
|
||||
log_init_time();
|
||||
break;
|
||||
case ARG_LOG_DATE_TIME:
|
||||
log_date_time = true;
|
||||
break;
|
||||
case '?':
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
#include <math.h>
|
||||
#include <limits.h>
|
||||
#include "shl_log.h"
|
||||
|
||||
|
@ -37,7 +39,7 @@ static inline void log_unlock()
|
|||
|
||||
static struct timeval log__ftime;
|
||||
|
||||
static bool log__have_time(void)
|
||||
bool log__have_time(void)
|
||||
{
|
||||
return !(log__ftime.tv_sec == 0 && log__ftime.tv_usec == 0);
|
||||
}
|
||||
|
@ -48,7 +50,7 @@ void log_init_time(void)
|
|||
gettimeofday(&log__ftime, NULL);
|
||||
}
|
||||
|
||||
static void log__time(long long *sec, long long *usec)
|
||||
void log__time(long long *sec, long long *usec)
|
||||
{
|
||||
struct timeval t;
|
||||
|
||||
|
@ -84,6 +86,7 @@ const char *LOG_SUBSYSTEM = NULL;
|
|||
*/
|
||||
|
||||
unsigned int log_max_sev = LOG_NOTICE;
|
||||
bool log_date_time = false;
|
||||
|
||||
char *gst_debug = NULL;
|
||||
|
||||
|
@ -138,25 +141,51 @@ static void log__submit(const char *file,
|
|||
const char *prefix = NULL;
|
||||
FILE *out;
|
||||
long long sec, usec;
|
||||
time_t now;
|
||||
struct tm *timeinfo;
|
||||
struct timeval tv;
|
||||
char buffertmp[80];
|
||||
char buffer[80];
|
||||
int millisec;
|
||||
|
||||
out = stderr;
|
||||
log__time(&sec, &usec);
|
||||
|
||||
if (sev < LOG_SEV_NUM && sev > log_max_sev)
|
||||
return;
|
||||
|
||||
log__time(&sec, &usec);
|
||||
|
||||
if (log_date_time) {
|
||||
gettimeofday(&tv, NULL);
|
||||
millisec = lrint(tv.tv_usec/1000.0);
|
||||
if (millisec>=1000) {
|
||||
millisec -=1000;
|
||||
tv.tv_sec++;
|
||||
}
|
||||
|
||||
time(&now);
|
||||
timeinfo = localtime(&now);
|
||||
|
||||
strftime(buffertmp, 80, "%x - %X.%03d", timeinfo);
|
||||
sprintf(buffer, "%s.%03d", buffertmp, millisec);
|
||||
}
|
||||
|
||||
if (sev < LOG_SEV_NUM)
|
||||
prefix = log__sev2str[sev];
|
||||
|
||||
if (prefix) {
|
||||
if (subs) {
|
||||
if (log__have_time())
|
||||
if (log_date_time)
|
||||
fprintf(out, "[%s] %s: %s: ", buffer, prefix, subs);
|
||||
else if (log__have_time())
|
||||
fprintf(out, "[%.4lld.%.6lld] %s: %s: ",
|
||||
sec, usec, prefix, subs);
|
||||
else
|
||||
fprintf(out, "%s: %s: ", prefix, subs);
|
||||
} else {
|
||||
if (log__have_time())
|
||||
if (log_date_time)
|
||||
fprintf(out, "[%s] %s: ", buffer, prefix);
|
||||
else if (log__have_time())
|
||||
fprintf(out, "[%.4lld.%.6lld] %s: ",
|
||||
sec, usec, prefix);
|
||||
else
|
||||
|
@ -164,13 +193,18 @@ static void log__submit(const char *file,
|
|||
}
|
||||
} else {
|
||||
if (subs) {
|
||||
if (log__have_time())
|
||||
if (log_date_time)
|
||||
fprintf(out, "[%s] %s: ",
|
||||
buffer, subs);
|
||||
else if (log__have_time())
|
||||
fprintf(out, "[%.4lld.%.6lld] %s: ",
|
||||
sec, usec, subs);
|
||||
else
|
||||
fprintf(out, "%s: ", subs);
|
||||
} else {
|
||||
if (log__have_time())
|
||||
if (log_date_time)
|
||||
fprintf(out, "[%s] ", buffer);
|
||||
else if (log__have_time())
|
||||
fprintf(out, "[%.4lld.%.6lld] ", sec, usec);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,6 +61,12 @@ enum log_severity {
|
|||
|
||||
extern unsigned int log_max_sev;
|
||||
|
||||
/*
|
||||
* Defines if log time should use local time
|
||||
* Default: false
|
||||
*/
|
||||
extern bool log_date_time;
|
||||
|
||||
/*
|
||||
* Defines the debug configuration for gstreamer
|
||||
*/
|
||||
|
@ -74,6 +80,10 @@ extern char* gst_debug;
|
|||
|
||||
void log_init_time(void);
|
||||
|
||||
void log__time(long long *sec, long long *usec);
|
||||
|
||||
bool log__have_time(void);
|
||||
|
||||
/*
|
||||
* Log-Functions
|
||||
* These functions pass a log-message to the log-subsystem. Handy helpers are
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
m = c_compiler.find_library('m', required: false)
|
||||
executable('miracle-uibcctl', 'miracle-uibcctl.h', 'miracle-uibcctl.c',
|
||||
install: true,
|
||||
dependencies: [m, libmiracle_shared_dep]
|
||||
|
|
|
@ -9,6 +9,6 @@ miracle_wifid_src = ['wifid.h',
|
|||
executable('miracle-wifid', miracle_wifid_src,
|
||||
include_directories: inc,
|
||||
install: true,
|
||||
dependencies: [udev, glib2, libsystemd, libmiracle_shared_dep]
|
||||
dependencies: [udev, glib2, libsystemd, libmiracle_shared_dep, m]
|
||||
)
|
||||
|
||||
|
|
|
@ -482,6 +482,7 @@ static int help(void)
|
|||
" --version Show package version\n"
|
||||
" --log-level <lvl> Maximum level for log messages\n"
|
||||
" --log-time Prefix log-messages with timestamp\n"
|
||||
" --log-date-time Prefix log-messages with date time\n"
|
||||
"\n"
|
||||
" -i --interface Choose the interface to use\n"
|
||||
" --config-methods Define config methods for pairing, default 'pbc'\n"
|
||||
|
@ -506,6 +507,7 @@ static int parse_argv(int argc, char *argv[])
|
|||
ARG_VERSION = 0x100,
|
||||
ARG_LOG_LEVEL,
|
||||
ARG_LOG_TIME,
|
||||
ARG_LOG_DATE_TIME,
|
||||
ARG_WPA_LOGLEVEL,
|
||||
ARG_WPA_SYSLOG,
|
||||
ARG_USE_DEV,
|
||||
|
@ -518,6 +520,7 @@ static int parse_argv(int argc, char *argv[])
|
|||
{ "version", no_argument, NULL, ARG_VERSION },
|
||||
{ "log-level", required_argument, NULL, ARG_LOG_LEVEL },
|
||||
{ "log-time", no_argument, NULL, ARG_LOG_TIME },
|
||||
{ "log-date-time", no_argument, NULL, ARG_LOG_DATE_TIME },
|
||||
|
||||
{ "wpa-loglevel", required_argument, NULL, ARG_WPA_LOGLEVEL },
|
||||
{ "wpa-syslog", no_argument, NULL, ARG_WPA_SYSLOG },
|
||||
|
@ -546,6 +549,9 @@ static int parse_argv(int argc, char *argv[])
|
|||
case ARG_LOG_TIME:
|
||||
log_init_time();
|
||||
break;
|
||||
case ARG_LOG_DATE_TIME:
|
||||
log_date_time = true;
|
||||
break;
|
||||
case ARG_USE_DEV:
|
||||
use_dev = true;
|
||||
break;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
check = dependency('check', required: false)
|
||||
deps = [udev, glib2, check, libsystemd, libmiracle_shared_dep]
|
||||
deps = [udev, glib2, check, libsystemd, libmiracle_shared_dep, m]
|
||||
|
||||
if check.found()
|
||||
test_rtsp = executable('test_rtsp', 'test_rtsp.c', dependencies: deps)
|
||||
|
|
Loading…
Reference in a new issue