summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2020-05-08 23:12:06 +0300
committerMarius Vlad <marius.vlad@collabora.com>2020-05-12 22:25:35 +0300
commit1956bd3bfb0c85e3eb3413dd465a1a2fb1ae78bb (patch)
tree40c1bea56f75f741c97858b5ce1a88d803dd7fe0
parentac4e3581fb1834a7d28eeaa2575777635d790279 (diff)
main: Convert to using the logging/debuggging fraemwork
With this in place we're now using the new logging framework. Bug-AGL: SPEC-3352 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I5782b9a9fa825351c630af39bf7542d4bfa14efa
-rw-r--r--src/main.c76
1 files changed, 51 insertions, 25 deletions
diff --git a/src/main.c b/src/main.c
index cc9ea3b..2764d4b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -52,6 +52,9 @@
#include "agl-shell-server-protocol.h"
+static int cached_tm_mday = -1;
+static struct weston_log_scope *log_scope;
+
struct ivi_compositor *
to_ivi_compositor(struct weston_compositor *ec)
{
@@ -981,36 +984,45 @@ load_config(struct weston_config **config, bool no_config,
static FILE *logfile;
-static int
-log_timestamp(void)
+static char *
+log_timestamp(char *buf, size_t len)
{
- static int cached_tm_mday = -1;
- struct timespec ts;
- struct tm brokendown_time;
- char buf[128];
+ struct timeval tv;
+ struct tm *brokendown_time;
+ char datestr[128];
+ char timestr[128];
- clock_gettime(CLOCK_REALTIME, &ts);
- if (!localtime_r(&ts.tv_sec, &brokendown_time))
- return fprintf(logfile, "[(NULL)localtime] ");
+ gettimeofday(&tv, NULL);
- if (brokendown_time.tm_mday != cached_tm_mday) {
- strftime(buf, sizeof buf, "%Y-%m-%d %Z", &brokendown_time);
- fprintf(logfile, "Date: %s\n", buf);
+ brokendown_time = localtime(&tv.tv_sec);
+ if (brokendown_time == NULL) {
+ snprintf(buf, len, "%s", "[(NULL)localtime] ");
+ return buf;
+ }
- cached_tm_mday = brokendown_time.tm_mday;
+ memset(datestr, 0, sizeof(datestr));
+ if (brokendown_time->tm_mday != cached_tm_mday) {
+ strftime(datestr, sizeof(datestr), "Date: %Y-%m-%d %Z\n",
+ brokendown_time);
+ cached_tm_mday = brokendown_time->tm_mday;
}
- strftime(buf, sizeof buf, "%H:%M:%S", &brokendown_time);
+ strftime(timestr, sizeof(timestr), "%H:%M:%S", brokendown_time);
+ /* if datestr is empty it prints only timestr*/
+ snprintf(buf, len, "%s[%s.%03li]", datestr,
+ timestr, (tv.tv_usec / 1000));
- return fprintf(logfile, "[%s.%03ld] ", buf, ts.tv_nsec / 1000000);
+ return buf;
}
static void
custom_handler(const char *fmt, va_list arg)
{
- log_timestamp();
- fprintf(logfile, "libwayland: ");
- vfprintf(logfile, fmt, arg);
+ char timestr[512];
+
+ weston_log_scope_printf(log_scope, "%s libwayland: ",
+ log_timestamp(timestr, sizeof(timestr)));
+ weston_log_scope_vprintf(log_scope, fmt, arg);
}
static void
@@ -1040,18 +1052,33 @@ log_file_close(void)
static int
vlog(const char *fmt, va_list ap)
{
- int l;
-
- l = log_timestamp();
- l += vfprintf(logfile, fmt, ap);
+ const char *oom = "Out of memory";
+ char timestr[128];
+ int len = 0;
+ char *str;
+
+ if (weston_log_scope_is_enabled(log_scope)) {
+ int len_va;
+ char *xlog_timestamp = log_timestamp(timestr, sizeof(timestr));
+ len_va = vasprintf(&str, fmt, ap);
+ if (len_va >= 0) {
+ len = weston_log_scope_printf(log_scope, "%s %s",
+ xlog_timestamp, str);
+ free(str);
+ } else {
+ len = weston_log_scope_printf(log_scope, "%s %s",
+ xlog_timestamp, oom);
+ }
+ }
- return l;
+ return len;
}
+
static int
vlog_continue(const char *fmt, va_list ap)
{
- return vfprintf(logfile, fmt, ap);
+ return weston_log_scope_vprintf(log_scope, fmt, ap);
}
static int
@@ -1129,7 +1156,6 @@ int main(int argc, char *argv[])
int no_config = 0;
char *config_file = NULL;
struct weston_log_context *log_ctx = NULL;
- struct weston_log_scope *log_scope;
struct weston_log_subscriber *logger;
int ret = EXIT_FAILURE;
'#n347'>347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479