get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/135262/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 135262,
    "url": "http://patches.dpdk.org/api/patches/135262/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231218092738.749604-15-david.marchand@redhat.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20231218092738.749604-15-david.marchand@redhat.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231218092738.749604-15-david.marchand@redhat.com",
    "date": "2023-12-18T09:27:36",
    "name": "[v3,14/14] lib: use per line logging in helpers",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "ccd8ad3e8b5d58289eb7cacf456a70c607f5ae4a",
    "submitter": {
        "id": 1173,
        "url": "http://patches.dpdk.org/api/people/1173/?format=api",
        "name": "David Marchand",
        "email": "david.marchand@redhat.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231218092738.749604-15-david.marchand@redhat.com/mbox/",
    "series": [
        {
            "id": 30587,
            "url": "http://patches.dpdk.org/api/series/30587/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30587",
            "date": "2023-12-18T09:27:22",
            "name": "Detect superfluous newline in logs",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/30587/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/135262/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/135262/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 7727C43733;\n\tMon, 18 Dec 2023 10:29:46 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 15126427E0;\n\tMon, 18 Dec 2023 10:29:03 +0100 (CET)",
            "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.129.124])\n by mails.dpdk.org (Postfix) with ESMTP id 6391F427DF\n for <dev@dpdk.org>; Mon, 18 Dec 2023 10:28:59 +0100 (CET)",
            "from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73])\n by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-127-vdUu0lP-N1uGjGWHN__NJw-1; Mon,\n 18 Dec 2023 04:28:53 -0500",
            "from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com\n [10.11.54.3])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1A9101C06361;\n Mon, 18 Dec 2023 09:28:52 +0000 (UTC)",
            "from dmarchan.redhat.com (unknown [10.45.224.218])\n by smtp.corp.redhat.com (Postfix) with ESMTP id 4154B1121313;\n Mon, 18 Dec 2023 09:28:46 +0000 (UTC)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1702891738;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=LOHMzoVr5ul1RlKmXsKcXEUzxgPM1PrcO/OoSxsT+2U=;\n b=R/SKjNxM6AIE7f/fWQv16mR93VKNuz4dRTsGH+YIfJfVSfV07p4zW/gRn145VzqnJolJlO\n Bhb7qIvv7BgWnyRJy1fOSqVb7w7RdOr7iV2pM98yfLtXuxt6DM+y2MNYEvs+mOEOaevgfI\n 3w1z8KuvrIG7MwMkPQ+ngjbZH++cGAs=",
        "X-MC-Unique": "vdUu0lP-N1uGjGWHN__NJw-1",
        "From": "David Marchand <david.marchand@redhat.com>",
        "To": "dev@dpdk.org",
        "Cc": "thomas@monjalon.net, ferruh.yigit@amd.com, bruce.richardson@intel.com,\n stephen@networkplumber.org, mb@smartsharesystems.com,\n Chengwen Feng <fengchengwen@huawei.com>,\n Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,\n Nicolas Chautru <nicolas.chautru@intel.com>,\n Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>,\n Cristian Dumitrescu <cristian.dumitrescu@intel.com>,\n Fan Zhang <fanzhang.oss@gmail.com>,\n Ashish Gupta <ashish.gupta@marvell.com>, Akhil Goyal <gakhil@marvell.com>,\n Kevin Laatz <kevin.laatz@intel.com>, Jerin Jacob <jerinj@marvell.com>,\n Erik Gabriel Carrillo <erik.g.carrillo@intel.com>,\n Elena Agostini <eagostini@nvidia.com>,\n Kiran Kumar K <kirankumark@marvell.com>,\n Nithin Dabilpuram <ndabilpuram@marvell.com>,\n Zhirun Yan <zhirun.yan@intel.com>, Yipeng Wang <yipeng1.wang@intel.com>,\n Sameh Gobriel <sameh.gobriel@intel.com>,\n Srikanth Yalavarthi <syalavarthi@marvell.com>,\n Jasvinder Singh <jasvinder.singh@intel.com>,\n Pavan Nikhilesh <pbhagavatula@marvell.com>,\n Reshma Pattan <reshma.pattan@intel.com>,\n Anatoly Burakov <anatoly.burakov@intel.com>,\n David Hunt <david.hunt@intel.com>,\n Sivaprasad Tummala <sivaprasad.tummala@amd.com>,\n Sachin Saxena <sachin.saxena@nxp.com>,\n Hemant Agrawal <hemant.agrawal@nxp.com>,\n Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>,\n Ori Kam <orika@nvidia.com>, Ciara Power <ciara.power@intel.com>,\n Maxime Coquelin <maxime.coquelin@redhat.com>,\n Chenbo Xia <chenbox@nvidia.com>",
        "Subject": "[PATCH v3 14/14] lib: use per line logging in helpers",
        "Date": "Mon, 18 Dec 2023 10:27:36 +0100",
        "Message-ID": "<20231218092738.749604-15-david.marchand@redhat.com>",
        "In-Reply-To": "<20231218092738.749604-1-david.marchand@redhat.com>",
        "References": "<20231117131824.1977792-1-david.marchand@redhat.com>\n <20231218092738.749604-1-david.marchand@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.4.1 on 10.11.54.3",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-Originator": "redhat.com",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain; charset=\"US-ASCII\"; x-default=true",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "Use RTE_LOG_LINE in existing macros that append a \\n.\n\nSigned-off-by: David Marchand <david.marchand@redhat.com>\nReviewed-by: Chengwen Feng <fengchengwen@huawei.com>\nReviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>\n---\nChanges since RFC v1:\n- converted all logging helpers in lib/,\n\n---\n lib/bbdev/rte_bbdev.c                      |  5 +++--\n lib/bpf/bpf_impl.h                         |  2 +-\n lib/cfgfile/rte_cfgfile.c                  |  4 ++--\n lib/compressdev/rte_compressdev_internal.h |  5 +++--\n lib/cryptodev/rte_cryptodev.h              | 16 +++++++---------\n lib/dmadev/rte_dmadev.c                    |  6 ++++--\n lib/ethdev/rte_ethdev.h                    |  3 +--\n lib/eventdev/eventdev_pmd.h                |  8 ++++----\n lib/eventdev/rte_event_timer_adapter.c     | 17 ++++++++++-------\n lib/gpudev/gpudev.c                        |  6 ++++--\n lib/graph/graph_private.h                  |  5 +++--\n lib/member/member.h                        |  4 ++--\n lib/metrics/rte_metrics_telemetry.c        |  4 ++--\n lib/mldev/rte_mldev.h                      |  5 +++--\n lib/net/rte_net_crc.c                      |  8 ++++----\n lib/node/node_private.h                    |  6 ++++--\n lib/pdump/rte_pdump.c                      |  5 ++---\n lib/power/power_common.h                   |  2 +-\n lib/rawdev/rte_rawdev_pmd.h                |  4 ++--\n lib/rcu/rte_rcu_qsbr.h                     |  8 +++-----\n lib/regexdev/rte_regexdev.h                |  3 +--\n lib/stack/stack_pvt.h                      |  4 ++--\n lib/telemetry/telemetry.c                  |  4 +---\n lib/vhost/vhost.h                          |  8 ++++----\n lib/vhost/vhost_crypto.c                   |  6 +++---\n 25 files changed, 76 insertions(+), 72 deletions(-)",
    "diff": "diff --git a/lib/bbdev/rte_bbdev.c b/lib/bbdev/rte_bbdev.c\nindex e09bb97abb..13bde3c25b 100644\n--- a/lib/bbdev/rte_bbdev.c\n+++ b/lib/bbdev/rte_bbdev.c\n@@ -28,10 +28,11 @@\n \n /* BBDev library logging ID */\n RTE_LOG_REGISTER_DEFAULT(bbdev_logtype, NOTICE);\n+#define RTE_LOGTYPE_BBDEV bbdev_logtype\n \n /* Helper macro for logging */\n-#define rte_bbdev_log(level, fmt, ...) \\\n-\trte_log(RTE_LOG_ ## level, bbdev_logtype, fmt \"\\n\", ##__VA_ARGS__)\n+#define rte_bbdev_log(level, ...) \\\n+\tRTE_LOG_LINE(level, BBDEV, \"\" __VA_ARGS__)\n \n #define rte_bbdev_log_debug(fmt, ...) \\\n \trte_bbdev_log(DEBUG, RTE_STR(__LINE__) \":%s() \" fmt, __func__, \\\ndiff --git a/lib/bpf/bpf_impl.h b/lib/bpf/bpf_impl.h\nindex 6a82ae4ef2..1a3d97d0c7 100644\n--- a/lib/bpf/bpf_impl.h\n+++ b/lib/bpf/bpf_impl.h\n@@ -30,7 +30,7 @@ extern int rte_bpf_logtype;\n #define RTE_LOGTYPE_BPF rte_bpf_logtype\n \n #define\tRTE_BPF_LOG_LINE(lvl, fmt, args...) \\\n-\tRTE_LOG(lvl, BPF, fmt \"\\n\", ##args)\n+\tRTE_LOG_LINE(lvl, BPF, fmt, ##args)\n \n static inline size_t\n bpf_size(uint32_t bpf_op_sz)\ndiff --git a/lib/cfgfile/rte_cfgfile.c b/lib/cfgfile/rte_cfgfile.c\nindex 2f9cc0722a..6a5e4fd942 100644\n--- a/lib/cfgfile/rte_cfgfile.c\n+++ b/lib/cfgfile/rte_cfgfile.c\n@@ -29,10 +29,10 @@ struct rte_cfgfile {\n \n /* Setting up dynamic logging 8< */\n RTE_LOG_REGISTER_DEFAULT(cfgfile_logtype, INFO);\n+#define RTE_LOGTYPE_CFGFILE cfgfile_logtype\n \n #define CFG_LOG(level, fmt, args...)\t\t\t\t\t\\\n-\trte_log(RTE_LOG_ ## level, cfgfile_logtype, \"%s(): \" fmt \"\\n\",\t\\\n-\t\t__func__, ## args)\n+\tRTE_LOG_LINE(level, CFGFILE, \"%s(): \" fmt, __func__, ## args)\n /* >8 End of setting up dynamic logging */\n \n /** when we resize a file structure, how many extra entries\ndiff --git a/lib/compressdev/rte_compressdev_internal.h b/lib/compressdev/rte_compressdev_internal.h\nindex b3b193e3ee..01b7764282 100644\n--- a/lib/compressdev/rte_compressdev_internal.h\n+++ b/lib/compressdev/rte_compressdev_internal.h\n@@ -21,9 +21,10 @@ extern \"C\" {\n \n /* Logging Macros */\n extern int compressdev_logtype;\n+#define RTE_LOGTYPE_COMPRESSDEV compressdev_logtype\n+\n #define COMPRESSDEV_LOG(level, fmt, args...) \\\n-\trte_log(RTE_LOG_ ## level, compressdev_logtype, \"%s(): \" fmt \"\\n\", \\\n-\t\t\t__func__, ##args)\n+\tRTE_LOG_LINE(level, COMPRESSDEV, \"%s(): \" fmt, __func__, ## args)\n \n /**\n  * Dequeue processed packets from queue pair of a device.\ndiff --git a/lib/cryptodev/rte_cryptodev.h b/lib/cryptodev/rte_cryptodev.h\nindex 30ad2d9a95..83c8d44349 100644\n--- a/lib/cryptodev/rte_cryptodev.h\n+++ b/lib/cryptodev/rte_cryptodev.h\n@@ -36,23 +36,21 @@ extern int rte_cryptodev_logtype;\n \n /* Logging Macros */\n #define CDEV_LOG_ERR(...) \\\n-\tRTE_LOG(ERR, CRYPTODEV, \\\n-\t\tRTE_FMT(\"%s() line %u: \" RTE_FMT_HEAD(__VA_ARGS__,) \"\\n\", \\\n+\tRTE_LOG_LINE(ERR, CRYPTODEV, \\\n+\t\tRTE_FMT(\"%s() line %u: \" RTE_FMT_HEAD(__VA_ARGS__,), \\\n \t\t\t__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))\n \n #define CDEV_LOG_INFO(...) \\\n-\tRTE_LOG(INFO, CRYPTODEV, \\\n-\t\tRTE_FMT(RTE_FMT_HEAD(__VA_ARGS__,) \"\\n\", \\\n-\t\t\tRTE_FMT_TAIL(__VA_ARGS__,)))\n+\tRTE_LOG_LINE(INFO, CRYPTODEV, \"\" __VA_ARGS__)\n \n #define CDEV_LOG_DEBUG(...) \\\n-\tRTE_LOG(DEBUG, CRYPTODEV, \\\n-\t\tRTE_FMT(\"%s() line %u: \" RTE_FMT_HEAD(__VA_ARGS__,) \"\\n\", \\\n+\tRTE_LOG_LINE(DEBUG, CRYPTODEV, \\\n+\t\tRTE_FMT(\"%s() line %u: \" RTE_FMT_HEAD(__VA_ARGS__,), \\\n \t\t\t__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))\n \n #define CDEV_PMD_TRACE(...) \\\n-\tRTE_LOG(DEBUG, CRYPTODEV, \\\n-\t\tRTE_FMT(\"[%s] %s: \" RTE_FMT_HEAD(__VA_ARGS__,) \"\\n\", \\\n+\tRTE_LOG_LINE(DEBUG, CRYPTODEV, \\\n+\t\tRTE_FMT(\"[%s] %s: \" RTE_FMT_HEAD(__VA_ARGS__,), \\\n \t\t\tdev, __func__, RTE_FMT_TAIL(__VA_ARGS__,)))\n \n /**\ndiff --git a/lib/dmadev/rte_dmadev.c b/lib/dmadev/rte_dmadev.c\nindex 009a21849a..c1a166858c 100644\n--- a/lib/dmadev/rte_dmadev.c\n+++ b/lib/dmadev/rte_dmadev.c\n@@ -32,9 +32,11 @@ static struct {\n } *dma_devices_shared_data;\n \n RTE_LOG_REGISTER_DEFAULT(rte_dma_logtype, INFO);\n+#define RTE_LOGTYPE_DMA rte_dma_logtype\n+\n #define RTE_DMA_LOG(level, ...) \\\n-\trte_log(RTE_LOG_ ## level, rte_dma_logtype, RTE_FMT(\"dma: \" \\\n-\t\tRTE_FMT_HEAD(__VA_ARGS__,) \"\\n\", RTE_FMT_TAIL(__VA_ARGS__,)))\n+\tRTE_LOG_LINE(level, DMA, RTE_FMT(\"dma: \" RTE_FMT_HEAD(__VA_ARGS__,), \\\n+\t\tRTE_FMT_TAIL(__VA_ARGS__,)))\n \n int\n rte_dma_dev_max(size_t dev_max)\ndiff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h\nindex 18debce99c..21e3a21903 100644\n--- a/lib/ethdev/rte_ethdev.h\n+++ b/lib/ethdev/rte_ethdev.h\n@@ -179,8 +179,7 @@ extern int rte_eth_dev_logtype;\n #define RTE_LOGTYPE_ETHDEV rte_eth_dev_logtype\n \n #define RTE_ETHDEV_LOG_LINE(level, ...) \\\n-\tRTE_LOG(level, ETHDEV, RTE_FMT(RTE_FMT_HEAD(__VA_ARGS__,) \"\\n\", \\\n-\t\tRTE_FMT_TAIL(__VA_ARGS__,)))\n+\tRTE_LOG_LINE(level, ETHDEV, \"\" __VA_ARGS__)\n \n struct rte_mbuf;\n \ndiff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h\nindex 2ec5aec0a8..50cf7d9057 100644\n--- a/lib/eventdev/eventdev_pmd.h\n+++ b/lib/eventdev/eventdev_pmd.h\n@@ -33,14 +33,14 @@ extern \"C\" {\n \n /* Logging Macros */\n #define RTE_EDEV_LOG_ERR(...) \\\n-\tRTE_LOG(ERR, EVENTDEV, \\\n-\t\tRTE_FMT(\"%s() line %u: \" RTE_FMT_HEAD(__VA_ARGS__,) \"\\n\", \\\n+\tRTE_LOG_LINE(ERR, EVENTDEV, \\\n+\t\tRTE_FMT(\"%s() line %u: \" RTE_FMT_HEAD(__VA_ARGS__,), \\\n \t\t\t__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))\n \n #ifdef RTE_LIBRTE_EVENTDEV_DEBUG\n #define RTE_EDEV_LOG_DEBUG(...) \\\n-\tRTE_LOG(DEBUG, EVENTDEV, \\\n-\t\tRTE_FMT(\"%s() line %u: \" RTE_FMT_HEAD(__VA_ARGS__,) \"\\n\", \\\n+\tRTE_LOG_LINE(DEBUG, EVENTDEV, \\\n+\t\tRTE_FMT(\"%s() line %u: \" RTE_FMT_HEAD(__VA_ARGS__,), \\\n \t\t\t__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))\n #else\n #define RTE_EDEV_LOG_DEBUG(...) (void)0\ndiff --git a/lib/eventdev/rte_event_timer_adapter.c b/lib/eventdev/rte_event_timer_adapter.c\nindex 3f22e85173..6ebb7b257e 100644\n--- a/lib/eventdev/rte_event_timer_adapter.c\n+++ b/lib/eventdev/rte_event_timer_adapter.c\n@@ -30,27 +30,30 @@\n #define DATA_MZ_NAME_FORMAT \"rte_event_timer_adapter_data_%d\"\n \n RTE_LOG_REGISTER_SUFFIX(evtim_logtype, adapter.timer, NOTICE);\n+#define RTE_LOGTYPE_EVTIM evtim_logtype\n RTE_LOG_REGISTER_SUFFIX(evtim_buffer_logtype, adapter.timer, NOTICE);\n+#define RTE_LOGTYPE_EVTIM_BUF evtim_buffer_logtype\n RTE_LOG_REGISTER_SUFFIX(evtim_svc_logtype, adapter.timer.svc, NOTICE);\n+#define RTE_LOGTYPE_EVTIM_SVC evtim_svc_logtype\n \n static struct rte_event_timer_adapter *adapters;\n \n static const struct event_timer_adapter_ops swtim_ops;\n \n #define EVTIM_LOG(level, logtype, ...) \\\n-\trte_log(RTE_LOG_ ## level, logtype, \\\n-\t\tRTE_FMT(\"EVTIMER: %s() line %u: \" RTE_FMT_HEAD(__VA_ARGS__,) \\\n-\t\t\t\"\\n\", __func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))\n+\tRTE_LOG_LINE(level, logtype, \\\n+\t\tRTE_FMT(\"EVTIMER: %s() line %u: \" RTE_FMT_HEAD(__VA_ARGS__,), \\\n+\t\t\t__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))\n \n-#define EVTIM_LOG_ERR(...) EVTIM_LOG(ERR, evtim_logtype, __VA_ARGS__)\n+#define EVTIM_LOG_ERR(...) EVTIM_LOG(ERR, EVTIM, __VA_ARGS__)\n \n #ifdef RTE_LIBRTE_EVENTDEV_DEBUG\n #define EVTIM_LOG_DBG(...) \\\n-\tEVTIM_LOG(DEBUG, evtim_logtype, __VA_ARGS__)\n+\tEVTIM_LOG(DEBUG, EVTIM, __VA_ARGS__)\n #define EVTIM_BUF_LOG_DBG(...) \\\n-\tEVTIM_LOG(DEBUG, evtim_buffer_logtype, __VA_ARGS__)\n+\tEVTIM_LOG(DEBUG, EVTIM_BUF, __VA_ARGS__)\n #define EVTIM_SVC_LOG_DBG(...) \\\n-\tEVTIM_LOG(DEBUG, evtim_svc_logtype, __VA_ARGS__)\n+\tEVTIM_LOG(DEBUG, EVTIM_SVC, __VA_ARGS__)\n #else\n #define EVTIM_LOG_DBG(...) (void)0\n #define EVTIM_BUF_LOG_DBG(...) (void)0\ndiff --git a/lib/gpudev/gpudev.c b/lib/gpudev/gpudev.c\nindex 6845d18b4d..79118c3e94 100644\n--- a/lib/gpudev/gpudev.c\n+++ b/lib/gpudev/gpudev.c\n@@ -17,9 +17,11 @@\n \n /* Logging */\n RTE_LOG_REGISTER_DEFAULT(gpu_logtype, NOTICE);\n+#define RTE_LOGTYPE_GPUDEV gpu_logtype\n+\n #define GPU_LOG(level, ...) \\\n-\trte_log(RTE_LOG_ ## level, gpu_logtype, RTE_FMT(\"gpu: \" \\\n-\t\tRTE_FMT_HEAD(__VA_ARGS__, ) \"\\n\", RTE_FMT_TAIL(__VA_ARGS__, )))\n+\tRTE_LOG_LINE(level, GPUDEV, RTE_FMT(\"gpu: \" RTE_FMT_HEAD(__VA_ARGS__, ), \\\n+\t\tRTE_FMT_TAIL(__VA_ARGS__, )))\n \n /* Set any driver error as EPERM */\n #define GPU_DRV_RET(function) \\\ndiff --git a/lib/graph/graph_private.h b/lib/graph/graph_private.h\nindex d0ef13b205..672a034287 100644\n--- a/lib/graph/graph_private.h\n+++ b/lib/graph/graph_private.h\n@@ -18,10 +18,11 @@\n #include \"rte_graph_worker.h\"\n \n extern int rte_graph_logtype;\n+#define RTE_LOGTYPE_GRAPH rte_graph_logtype\n \n #define GRAPH_LOG(level, ...)                                                  \\\n-\trte_log(RTE_LOG_##level, rte_graph_logtype,                            \\\n-\t\tRTE_FMT(\"GRAPH: %s():%u \" RTE_FMT_HEAD(__VA_ARGS__, ) \"\\n\",    \\\n+\tRTE_LOG_LINE(level, GRAPH,                                             \\\n+\t\tRTE_FMT(\"GRAPH: %s():%u \" RTE_FMT_HEAD(__VA_ARGS__, ),         \\\n \t\t\t__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__, )))\n \n #define graph_err(...) GRAPH_LOG(ERR, __VA_ARGS__)\ndiff --git a/lib/member/member.h b/lib/member/member.h\nindex ce150f7689..56dd2782a6 100644\n--- a/lib/member/member.h\n+++ b/lib/member/member.h\n@@ -8,7 +8,7 @@ extern int librte_member_logtype;\n #define RTE_LOGTYPE_MEMBER librte_member_logtype\n \n #define MEMBER_LOG(level, ...) \\\n-\tRTE_LOG(level,  MEMBER, \\\n-\t\tRTE_FMT(\"%s(): \" RTE_FMT_HEAD(__VA_ARGS__,) \"\\n\", \\\n+\tRTE_LOG_LINE(level,  MEMBER, \\\n+\t\tRTE_FMT(\"%s(): \" RTE_FMT_HEAD(__VA_ARGS__,), \\\n \t\t\t__func__, RTE_FMT_TAIL(__VA_ARGS__,)))\n \ndiff --git a/lib/metrics/rte_metrics_telemetry.c b/lib/metrics/rte_metrics_telemetry.c\nindex 1d133e1f8c..b8c9d75a7d 100644\n--- a/lib/metrics/rte_metrics_telemetry.c\n+++ b/lib/metrics/rte_metrics_telemetry.c\n@@ -16,11 +16,11 @@\n struct telemetry_metrics_data tel_met_data;\n \n int metrics_log_level;\n+#define RTE_LOGTYPE_METRICS metrics_log_level\n \n /* Logging Macros */\n #define METRICS_LOG(level, fmt, args...) \\\n-\trte_log(RTE_LOG_ ##level, metrics_log_level, \"%s(): \"fmt \"\\n\", \\\n-\t\t__func__, ##args)\n+\tRTE_LOG_LINE(level, METRICS, \"%s(): \"fmt, __func__, ## args)\n \n #define METRICS_LOG_ERR(fmt, args...) \\\n \tMETRICS_LOG(ERR, fmt, ## args)\ndiff --git a/lib/mldev/rte_mldev.h b/lib/mldev/rte_mldev.h\nindex 63b2670bb0..5cf6f0566f 100644\n--- a/lib/mldev/rte_mldev.h\n+++ b/lib/mldev/rte_mldev.h\n@@ -144,9 +144,10 @@ extern \"C\" {\n \n /* Logging Macro */\n extern int rte_ml_dev_logtype;\n+#define RTE_LOGTYPE_MLDEV rte_ml_dev_logtype\n \n-#define RTE_MLDEV_LOG(level, fmt, args...)                                                         \\\n-\trte_log(RTE_LOG_##level, rte_ml_dev_logtype, \"%s(): \" fmt \"\\n\", __func__, ##args)\n+#define RTE_MLDEV_LOG(level, fmt, args...) \\\n+\tRTE_LOG_LINE(level, MLDEV, \"%s(): \" fmt, __func__, ##args)\n \n #define RTE_ML_STR_MAX 128\n /**< Maximum length of name string */\ndiff --git a/lib/net/rte_net_crc.c b/lib/net/rte_net_crc.c\nindex 900d6de7f4..b401ea3dd8 100644\n--- a/lib/net/rte_net_crc.c\n+++ b/lib/net/rte_net_crc.c\n@@ -70,11 +70,11 @@ static const rte_net_crc_handler handlers_neon[] = {\n \n static uint16_t max_simd_bitwidth;\n \n-#define NET_LOG(level, fmt, args...)\t\t\t\t\t\\\n-\trte_log(RTE_LOG_ ## level, libnet_logtype, \"%s(): \" fmt \"\\n\",\t\\\n-\t\t__func__, ## args)\n-\n RTE_LOG_REGISTER_DEFAULT(libnet_logtype, INFO);\n+#define RTE_LOGTYPE_NET libnet_logtype\n+\n+#define NET_LOG(level, fmt, args...) \\\n+\tRTE_LOG_LINE(level, NET, \"%s(): \" fmt, __func__, ## args)\n \n /* Scalar handling */\n \ndiff --git a/lib/node/node_private.h b/lib/node/node_private.h\nindex 26135aaa5b..5702146db4 100644\n--- a/lib/node/node_private.h\n+++ b/lib/node/node_private.h\n@@ -11,9 +11,11 @@\n #include <rte_mbuf_dyn.h>\n \n extern int rte_node_logtype;\n+#define RTE_LOGTYPE_NODE rte_node_logtype\n+\n #define NODE_LOG(level, node_name, ...)                                        \\\n-\trte_log(RTE_LOG_##level, rte_node_logtype,                             \\\n-\t\tRTE_FMT(\"NODE %s: %s():%u \" RTE_FMT_HEAD(__VA_ARGS__, ) \"\\n\",  \\\n+\tRTE_LOG_LINE(level, NODE,                                              \\\n+\t\tRTE_FMT(\"NODE %s: %s():%u \" RTE_FMT_HEAD(__VA_ARGS__, ),       \\\n \t\t\tnode_name, __func__, __LINE__,                         \\\n \t\t\tRTE_FMT_TAIL(__VA_ARGS__, )))\n \ndiff --git a/lib/pdump/rte_pdump.c b/lib/pdump/rte_pdump.c\nindex 70963e7ee7..f6160f9911 100644\n--- a/lib/pdump/rte_pdump.c\n+++ b/lib/pdump/rte_pdump.c\n@@ -18,9 +18,8 @@\n RTE_LOG_REGISTER_DEFAULT(pdump_logtype, NOTICE);\n #define RTE_LOGTYPE_PDUMP pdump_logtype\n \n-#define PDUMP_LOG_LINE(level, fmt, args...)\t\t\\\n-\tRTE_LOG(level, PDUMP, \"%s(): \" fmt \"\\n\",\t\\\n-\t\t__func__, ## args)\n+#define PDUMP_LOG_LINE(level, fmt, args...) \\\n+\tRTE_LOG_LINE(level, PDUMP, \"%s(): \" fmt, __func__, ## args)\n \n /* Used for the multi-process communication */\n #define PDUMP_MP\t\"mp_pdump\"\ndiff --git a/lib/power/power_common.h b/lib/power/power_common.h\nindex ea2febbd86..4e32548169 100644\n--- a/lib/power/power_common.h\n+++ b/lib/power/power_common.h\n@@ -15,7 +15,7 @@ extern int power_logtype;\n \n #ifdef RTE_LIBRTE_POWER_DEBUG\n #define POWER_DEBUG_LOG(fmt, args...) \\\n-\tRTE_LOG(ERR, POWER, \"%s: \" fmt \"\\n\", __func__, ## args)\n+\tRTE_LOG_LINE(ERR, POWER, \"%s: \" fmt, __func__, ## args)\n #else\n #define POWER_DEBUG_LOG(fmt, args...)\n #endif\ndiff --git a/lib/rawdev/rte_rawdev_pmd.h b/lib/rawdev/rte_rawdev_pmd.h\nindex 7b9ef1d09f..7173282c66 100644\n--- a/lib/rawdev/rte_rawdev_pmd.h\n+++ b/lib/rawdev/rte_rawdev_pmd.h\n@@ -27,11 +27,11 @@ extern \"C\" {\n #include \"rte_rawdev.h\"\n \n extern int librawdev_logtype;\n+#define RTE_LOGTYPE_RAWDEV librawdev_logtype\n \n /* Logging Macros */\n #define RTE_RDEV_LOG(level, fmt, args...) \\\n-\trte_log(RTE_LOG_ ## level, librawdev_logtype, \"%s(): \" fmt \"\\n\", \\\n-\t\t__func__, ##args)\n+\tRTE_LOG_LINE(level, RAWDEV, \"%s(): \" fmt, __func__, ##args)\n \n #define RTE_RDEV_ERR(fmt, args...) \\\n \tRTE_RDEV_LOG(ERR, fmt, ## args)\ndiff --git a/lib/rcu/rte_rcu_qsbr.h b/lib/rcu/rte_rcu_qsbr.h\nindex 0dca8310c0..23c9f89805 100644\n--- a/lib/rcu/rte_rcu_qsbr.h\n+++ b/lib/rcu/rte_rcu_qsbr.h\n@@ -40,17 +40,15 @@ extern int rte_rcu_log_type;\n \n #if RTE_LOG_DP_LEVEL >= RTE_LOG_DEBUG\n #define __RTE_RCU_DP_LOG(level, fmt, args...) \\\n-\trte_log(RTE_LOG_ ## level, rte_rcu_log_type, \\\n-\t\t\"%s(): \" fmt \"\\n\", __func__, ## args)\n+\tRTE_LOG_LINE(level, RCU, \"%s(): \" fmt, __func__, ## args)\n #else\n #define __RTE_RCU_DP_LOG(level, fmt, args...)\n #endif\n \n #if defined(RTE_LIBRTE_RCU_DEBUG)\n-#define __RTE_RCU_IS_LOCK_CNT_ZERO(v, thread_id, level, fmt, args...) do {\\\n+#define __RTE_RCU_IS_LOCK_CNT_ZERO(v, thread_id, level, fmt, args...) do { \\\n \tif (v->qsbr_cnt[thread_id].lock_cnt) \\\n-\t\trte_log(RTE_LOG_ ## level, rte_rcu_log_type, \\\n-\t\t\t\"%s(): \" fmt \"\\n\", __func__, ## args); \\\n+\t\tRTE_LOG_LINE(level, RCU, \"%s(): \" fmt, __func__, ## args); \\\n } while (0)\n #else\n #define __RTE_RCU_IS_LOCK_CNT_ZERO(v, thread_id, level, fmt, args...)\ndiff --git a/lib/regexdev/rte_regexdev.h b/lib/regexdev/rte_regexdev.h\nindex dc111317a5..a50b841b1e 100644\n--- a/lib/regexdev/rte_regexdev.h\n+++ b/lib/regexdev/rte_regexdev.h\n@@ -209,8 +209,7 @@ extern int rte_regexdev_logtype;\n #define RTE_LOGTYPE_REGEXDEV rte_regexdev_logtype\n \n #define RTE_REGEXDEV_LOG_LINE(level, ...) \\\n-\tRTE_LOG(level, REGEXDEV, RTE_FMT(RTE_FMT_HEAD(__VA_ARGS__,) \"\\n\", \\\n-\t\tRTE_FMT_TAIL(__VA_ARGS__,)))\n+\tRTE_LOG_LINE(level, REGEXDEV, \"\" __VA_ARGS__)\n \n /* Macros to check for valid port */\n #define RTE_REGEXDEV_VALID_DEV_ID_OR_ERR_RET(dev_id, retval) do { \\\ndiff --git a/lib/stack/stack_pvt.h b/lib/stack/stack_pvt.h\nindex c7eab4027d..2dce42a9da 100644\n--- a/lib/stack/stack_pvt.h\n+++ b/lib/stack/stack_pvt.h\n@@ -8,10 +8,10 @@\n #include <rte_log.h>\n \n extern int stack_logtype;\n+#define RTE_LOGTYPE_STACK stack_logtype\n \n #define STACK_LOG(level, fmt, args...) \\\n-\trte_log(RTE_LOG_ ##level, stack_logtype, \"%s(): \"fmt \"\\n\", \\\n-\t\t__func__, ##args)\n+\tRTE_LOG_LINE(level, STACK, \"%s(): \"fmt, __func__, ##args)\n \n #define STACK_LOG_ERR(fmt, args...) \\\n \tSTACK_LOG(ERR, fmt, ## args)\ndiff --git a/lib/telemetry/telemetry.c b/lib/telemetry/telemetry.c\nindex 5c655e2b25..31e2391867 100644\n--- a/lib/telemetry/telemetry.c\n+++ b/lib/telemetry/telemetry.c\n@@ -57,9 +57,7 @@ static rte_cpuset_t *thread_cpuset;\n \n RTE_LOG_REGISTER_DEFAULT(logtype, WARNING);\n #define RTE_LOGTYPE_TMTY logtype\n-#define TMTY_LOG_LINE(l, ...) \\\n-\tRTE_LOG(l, TMTY,  RTE_FMT(\"TELEMETRY: \" RTE_FMT_HEAD(__VA_ARGS__,) \"\\n\", \\\n-\t\tRTE_FMT_TAIL(__VA_ARGS__,)))\n+#define TMTY_LOG_LINE(l, ...) RTE_LOG_LINE(l, TMTY, \"TELEMETRY: \" __VA_ARGS__)\n \n /* list of command callbacks, with one command registered by default */\n static struct cmd_callback *callbacks;\ndiff --git a/lib/vhost/vhost.h b/lib/vhost/vhost.h\nindex 5a74d0e628..25c0f86e55 100644\n--- a/lib/vhost/vhost.h\n+++ b/lib/vhost/vhost.h\n@@ -678,12 +678,12 @@ extern int vhost_data_log_level;\n #define RTE_LOGTYPE_VHOST_DATA vhost_data_log_level\n \n #define VHOST_CONFIG_LOG(prefix, level, fmt, args...)\t\t\\\n-\tRTE_LOG(level, VHOST_CONFIG,\t\t\t\t\\\n-\t\t\"VHOST_CONFIG: (%s) \" fmt \"\\n\", prefix, ##args)\n+\tRTE_LOG_LINE(level, VHOST_CONFIG,\t\t\t\\\n+\t\t\"VHOST_CONFIG: (%s) \" fmt, prefix, ##args)\n \n #define VHOST_DATA_LOG(prefix, level, fmt, args...)\t\t\\\n-\tRTE_LOG_DP(level, VHOST_DATA,\t\t\t\t\\\n-\t\t\"VHOST_DATA: (%s) \" fmt \"\\n\", prefix, ##args)\n+\tRTE_LOG_DP_LINE(level, VHOST_DATA,\t\t\t\\\n+\t\t\"VHOST_DATA: (%s) \" fmt, prefix, ##args)\n \n #ifdef RTE_LIBRTE_VHOST_DEBUG\n #define VHOST_MAX_PRINT_BUFF 6072\ndiff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c\nindex 6e5443e5f8..3704fbbb3d 100644\n--- a/lib/vhost/vhost_crypto.c\n+++ b/lib/vhost/vhost_crypto.c\n@@ -21,15 +21,15 @@ RTE_LOG_REGISTER_SUFFIX(vhost_crypto_logtype, crypto, INFO);\n #define RTE_LOGTYPE_VHOST_CRYPTO\tvhost_crypto_logtype\n \n #define VC_LOG_ERR(fmt, args...)\t\t\t\t\\\n-\tRTE_LOG(ERR, VHOST_CRYPTO, \"%s() line %u: \" fmt \"\\n\",\t\\\n+\tRTE_LOG_LINE(ERR, VHOST_CRYPTO, \"%s() line %u: \" fmt,\t\\\n \t\t__func__, __LINE__, ## args)\n #define VC_LOG_INFO(fmt, args...)\t\t\t\t\\\n-\tRTE_LOG(INFO, VHOST_CRYPTO, \"%s() line %u: \" fmt \"\\n\",\t\\\n+\tRTE_LOG_LINE(INFO, VHOST_CRYPTO, \"%s() line %u: \" fmt,\t\\\n \t\t__func__, __LINE__, ## args)\n \n #ifdef RTE_LIBRTE_VHOST_DEBUG\n #define VC_LOG_DBG(fmt, args...)\t\t\t\t\\\n-\tRTE_LOG(DEBUG, VHOST_CRYPTO, \"%s() line %u: \" fmt \"\\n\",\t\\\n+\tRTE_LOG_LINE(DEBUG, VHOST_CRYPTO, \"%s() line %u: \" fmt,\t\\\n \t\t__func__, __LINE__, ## args)\n #else\n #define VC_LOG_DBG(fmt, args...)\n",
    "prefixes": [
        "v3",
        "14/14"
    ]
}