diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-09-14 16:14:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-14 16:14:47 +0200 |
commit | abb5876c4e0da48b5f47e099653dddcef2cf66be (patch) | |
tree | 391b021bf20ac14a5feff549bed10edae65231c9 /vespalog/src | |
parent | 8ac84a02a1e9464008526e6026873a6942eb75c6 (diff) | |
parent | 4abd7cb5a849bfd495a18fe1318321d339c96eab (diff) |
Merge pull request #24050 from vespa-engine/arnej/cleanup-perl-in-vespalog
Arnej/cleanup perl in vespalog
Diffstat (limited to 'vespalog/src')
-rw-r--r-- | vespalog/src/vespa/log/.gitignore | 1 | ||||
-rw-r--r-- | vespalog/src/vespa/log/CMakeLists.txt | 10 | ||||
-rwxr-xr-x | vespalog/src/vespa/log/create-multiarg-file.pl | 104 | ||||
-rw-r--r-- | vespalog/src/vespa/log/event-count-multiarg.cpp | 274 | ||||
-rw-r--r-- | vespalog/src/vespa/log/event-count-multiarg.h | 76 | ||||
-rw-r--r-- | vespalog/src/vespa/log/event-value-multiarg.cpp | 274 | ||||
-rw-r--r-- | vespalog/src/vespa/log/event-value-multiarg.h | 76 | ||||
-rw-r--r-- | vespalog/src/vespa/log/loglevelnames.cpp | 33 | ||||
-rwxr-xr-x | vespalog/src/vespa/log/mknm.pl | 46 |
9 files changed, 34 insertions, 860 deletions
diff --git a/vespalog/src/vespa/log/.gitignore b/vespalog/src/vespa/log/.gitignore index 7b45206e869..290968e7bfd 100644 --- a/vespalog/src/vespa/log/.gitignore +++ b/vespalog/src/vespa/log/.gitignore @@ -3,6 +3,5 @@ .depend Makefile logctl -loglevelnames.cpp logtest logtest.logcontrol diff --git a/vespalog/src/vespa/log/CMakeLists.txt b/vespalog/src/vespa/log/CMakeLists.txt index 1b68a53ad3d..dbeba17334b 100644 --- a/vespalog/src/vespa/log/CMakeLists.txt +++ b/vespalog/src/vespa/log/CMakeLists.txt @@ -2,7 +2,7 @@ vespa_add_library(vespalog SOURCES exceptions.cpp - ${CMAKE_CURRENT_BINARY_DIR}/loglevelnames.cpp + loglevelnames.cpp log.cpp bufferedlogger.cpp log-target-fd.cpp @@ -18,11 +18,3 @@ vespa_add_library(vespalog reject-filter.cpp INSTALL lib64 ) - -add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/loglevelnames.cpp - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/mknm.pl < ${CMAKE_CURRENT_SOURCE_DIR}/log.h > lln.NEW && mv lln.NEW ${CMAKE_CURRENT_BINARY_DIR}/loglevelnames.cpp - MAIN_DEPENDENCY log.h - DEPENDENCIES mknm.pl -) - diff --git a/vespalog/src/vespa/log/create-multiarg-file.pl b/vespalog/src/vespa/log/create-multiarg-file.pl deleted file mode 100755 index f2d60afeba3..00000000000 --- a/vespalog/src/vespa/log/create-multiarg-file.pl +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env perl -# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -# This script generates multi-argument functions for sending some events. - -require 5.006_001; -use warnings; -use strict; - -die "Usage: $0 <event-name> <event-version> <number of functions> <name>...\n" - unless $#ARGV > 2; - -my $event = $ARGV[0]; -my $event_version = $ARGV[1]; -my $noof_fns = $ARGV[2]; - -my @variables = @ARGV; -splice(@variables, 0, 3); - - -open(H, ">event-${event}-multiarg.h") - or die "Cannot open event-${event}-multiarg.h: $!\n"; -open(CPP, ">event-${event}-multiarg.cpp") - or die "Cannot open event-${event}-multiarg.cpp: $!\n"; - -my $called_as = "$0 $ARGV[0] $ARGV[1] $ARGV[2]"; -foreach my $x (@variables) { - $called_as .= " \"$x\""; -} - -print H << "EOF"; -// This file was generated like this: -// $called_as -// Don not modify this file manually! -EOF - -print CPP << "EOF"; -// This file was generated like this: -// $called_as -// Do not modify this file manually! -EOF - - -my $i; - -for ($i = 2; $i <= $noof_fns; $i++) { - print H "void doEvent\u${event}("; - print CPP "void\nLogger::doEvent\u${event}("; - my $n; - for ($n = 1; $n <= $i; $n++) { - print H "," unless $n == 1; - print H "\n\t"; - print CPP "," unless $n == 1; - print CPP "\n\t"; - my $first = 1; - foreach my $var (@variables) { - print H ", " unless $first; - print H "${var}${n}"; - print CPP ", " unless $first; - print CPP "${var}${n}"; - $first = 0; - } - } - print H ");\n\n"; - print CPP ")\n{\n"; - - print CPP "\tdoLog(event, \"\", 0, \"${event}/${event_version}\""; - for ($n = 1; $n <= $i; $n++) { - foreach my $var (@variables) { - my $type; - my $quot = ""; - if ($var =~ m=double =) { - $type = "%lf"; - } elsif ($var =~ m=int =) { - $type = "%d"; - } elsif ($var =~ m=const char ?\*=) { - $type = "%s"; - $quot = "\\\""; - } else { - die "Don't know printf format for variable $var\n"; - } - my $name = $var; - $name =~ s=.*[ *&]==; - print CPP "\n\t\t\" ${name}=${quot}${type}${quot}\""; - } - } - print CPP ","; - for ($n = 1; $n <= $i; $n++) { - my $first = 1; - print CPP "," unless $n == 1; - print CPP "\n\t\t"; - foreach my $var (@variables) { - print CPP ", " unless $first; - $first = 0; - my $name = $var; - $name =~ s=.*[ *&]==; - print CPP "${name}${n}"; - } - } - - print CPP ");\n"; - - print CPP "}\n\n"; -} diff --git a/vespalog/src/vespa/log/event-count-multiarg.cpp b/vespalog/src/vespa/log/event-count-multiarg.cpp deleted file mode 100644 index 139e050ecf4..00000000000 --- a/vespalog/src/vespa/log/event-count-multiarg.cpp +++ /dev/null @@ -1,274 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -// This file was generated like this: -// ./create-multiarg-file.pl count 2 10 "const char *name" "double value" -// Do not modify this file manually! -void -Logger::doEventCount( - const char *name1, double value1, - const char *name2, double value2) -{ - doLog(event, "", 0, "count/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2); -} - -void -Logger::doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3) -{ - doLog(event, "", 0, "count/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3); -} - -void -Logger::doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4) -{ - doLog(event, "", 0, "count/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4); -} - -void -Logger::doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5) -{ - doLog(event, "", 0, "count/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5); -} - -void -Logger::doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6) -{ - doLog(event, "", 0, "count/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5, - name6, value6); -} - -void -Logger::doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7) -{ - doLog(event, "", 0, "count/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5, - name6, value6, - name7, value7); -} - -void -Logger::doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8) -{ - doLog(event, "", 0, "count/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5, - name6, value6, - name7, value7, - name8, value8); -} - -void -Logger::doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8, - const char *name9, double value9) -{ - doLog(event, "", 0, "count/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5, - name6, value6, - name7, value7, - name8, value8, - name9, value9); -} - -void -Logger::doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8, - const char *name9, double value9, - const char *name10, double value10) -{ - doLog(event, "", 0, "count/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5, - name6, value6, - name7, value7, - name8, value8, - name9, value9, - name10, value10); -} - diff --git a/vespalog/src/vespa/log/event-count-multiarg.h b/vespalog/src/vespa/log/event-count-multiarg.h deleted file mode 100644 index 0019245329f..00000000000 --- a/vespalog/src/vespa/log/event-count-multiarg.h +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -// This file was generated like this: -// ./create-multiarg-file.pl count 2 10 "const char *name" "double value" -// Don not modify this file manually! -void doEventCount( - const char *name1, double value1, - const char *name2, double value2); - -void doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3); - -void doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4); - -void doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5); - -void doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6); - -void doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7); - -void doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8); - -void doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8, - const char *name9, double value9); - -void doEventCount( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8, - const char *name9, double value9, - const char *name10, double value10); - diff --git a/vespalog/src/vespa/log/event-value-multiarg.cpp b/vespalog/src/vespa/log/event-value-multiarg.cpp deleted file mode 100644 index faaf0a1fde9..00000000000 --- a/vespalog/src/vespa/log/event-value-multiarg.cpp +++ /dev/null @@ -1,274 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -// This file was generated like this: -// ./create-multiarg-file.pl value 2 10 "const char *name" "double value" -// Do not modify this file manually! -void -Logger::doEventValue( - const char *name1, double value1, - const char *name2, double value2) -{ - doLog(event, "", 0, "value/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2); -} - -void -Logger::doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3) -{ - doLog(event, "", 0, "value/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3); -} - -void -Logger::doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4) -{ - doLog(event, "", 0, "value/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4); -} - -void -Logger::doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5) -{ - doLog(event, "", 0, "value/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5); -} - -void -Logger::doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6) -{ - doLog(event, "", 0, "value/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5, - name6, value6); -} - -void -Logger::doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7) -{ - doLog(event, "", 0, "value/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5, - name6, value6, - name7, value7); -} - -void -Logger::doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8) -{ - doLog(event, "", 0, "value/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5, - name6, value6, - name7, value7, - name8, value8); -} - -void -Logger::doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8, - const char *name9, double value9) -{ - doLog(event, "", 0, "value/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5, - name6, value6, - name7, value7, - name8, value8, - name9, value9); -} - -void -Logger::doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8, - const char *name9, double value9, - const char *name10, double value10) -{ - doLog(event, "", 0, "value/2" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf" - " name=\"%s\"" - " value=%lf", - name1, value1, - name2, value2, - name3, value3, - name4, value4, - name5, value5, - name6, value6, - name7, value7, - name8, value8, - name9, value9, - name10, value10); -} - diff --git a/vespalog/src/vespa/log/event-value-multiarg.h b/vespalog/src/vespa/log/event-value-multiarg.h deleted file mode 100644 index a84f56291f9..00000000000 --- a/vespalog/src/vespa/log/event-value-multiarg.h +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -// This file was generated like this: -// ./create-multiarg-file.pl value 2 10 "const char *name" "double value" -// Don not modify this file manually! -void doEventValue( - const char *name1, double value1, - const char *name2, double value2); - -void doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3); - -void doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4); - -void doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5); - -void doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6); - -void doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7); - -void doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8); - -void doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8, - const char *name9, double value9); - -void doEventValue( - const char *name1, double value1, - const char *name2, double value2, - const char *name3, double value3, - const char *name4, double value4, - const char *name5, double value5, - const char *name6, double value6, - const char *name7, double value7, - const char *name8, double value8, - const char *name9, double value9, - const char *name10, double value10); - diff --git a/vespalog/src/vespa/log/loglevelnames.cpp b/vespalog/src/vespa/log/loglevelnames.cpp new file mode 100644 index 00000000000..4b571b23994 --- /dev/null +++ b/vespalog/src/vespa/log/loglevelnames.cpp @@ -0,0 +1,33 @@ +#include <string.h> +#include <vespa/log/log.h> + +namespace ns_log { + +enum Logger::LogLevel +Logger::parseLevel(const char *lname) +{ + if (strcmp(lname, "fatal") == 0) return fatal; + if (strcmp(lname, "error") == 0) return error; + if (strcmp(lname, "warning") == 0) return warning; + if (strcmp(lname, "config") == 0) return config; + if (strcmp(lname, "info") == 0) return info; + if (strcmp(lname, "event") == 0) return event; + if (strcmp(lname, "debug") == 0) return debug; + if (strcmp(lname, "spam") == 0) return spam; + // bad level name signaled by NUM_LOGLEVELS + return NUM_LOGLEVELS; +} + +const char *Logger::logLevelNames[] = { + "fatal", + "error", + "warning", + "config", + "info", + "event", + "debug", + "spam", + 0 // converting NUM_LOGLEVELS gives null pointer +}; + +} // namespace diff --git a/vespalog/src/vespa/log/mknm.pl b/vespalog/src/vespa/log/mknm.pl deleted file mode 100755 index 9aa2f6310ce..00000000000 --- a/vespalog/src/vespa/log/mknm.pl +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/perl -# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -while (<>) { - if ( s/.*\benum\s+LogLevel\s*\{// ) { - chomp; - $t = $_; - while (<>) { - if ( s/\}.*// ) { - $t .= $_; - $t =~ s/,/ /g; - @t = split(" ", $t); - if ( $t[$#t] ne "NUM_LOGLEVELS" ) { - die "expected NUM_LOGLEVELS got '$t[$#t]'\n"; - } - pop @t; - makecpp(); - } - $t .= $_; - } - } -} -die "did not find enum\n"; - -sub makecpp -{ - print "#include <string.h>\n"; - print '#include <vespa/log/log.h>'; - print "\n\n" . "namespace ns_log {" . "\n\n"; - - print "enum Logger::LogLevel\n"; - print "Logger::parseLevel(const char *lname)\n{\n"; - foreach $l ( @t ) { - print " if (strcmp(lname, \"$l\") == 0) return $l;\n"; - } - print " // bad level name signaled by NUM_LOGLEVELS\n"; - print " return NUM_LOGLEVELS;\n"; - print "}\n\n"; - - print "const char *Logger::logLevelNames[] = {" . "\n "; - foreach $l ( @t ) { $l = "\"$l\""; } - push @t, "0 // converting NUM_LOGLEVELS gives null pointer\n"; - print join(",\n ", @t); - print "};\n\n} // namespace\n"; - exit(0); -} |