get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 134453,
    "url": "http://patches.dpdk.org/api/patches/134453/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231117131824.1977792-4-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": "<20231117131824.1977792-4-david.marchand@redhat.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231117131824.1977792-4-david.marchand@redhat.com",
    "date": "2023-11-17T13:18:24",
    "name": "[RFC,3/3] lib: use per line logging",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "cee9ea66e01e14825b076f38e5fd027d67ce67f7",
    "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/20231117131824.1977792-4-david.marchand@redhat.com/mbox/",
    "series": [
        {
            "id": 30328,
            "url": "http://patches.dpdk.org/api/series/30328/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30328",
            "date": "2023-11-17T13:18:21",
            "name": "Detect superfluous newline in logs",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/30328/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/134453/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/134453/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 D2B6343354;\n\tFri, 17 Nov 2023 14:19:04 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0CD9741149;\n\tFri, 17 Nov 2023 14:18:54 +0100 (CET)",
            "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by mails.dpdk.org (Postfix) with ESMTP id C357B41149\n for <dev@dpdk.org>; Fri, 17 Nov 2023 14:18:52 +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-608-QiKFRZr-NdmfBJ_CI4AMWw-1; Fri,\n 17 Nov 2023 08:18:51 -0500",
            "from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com\n [10.11.54.9])\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 DBDAE280D470;\n Fri, 17 Nov 2023 13:18:49 +0000 (UTC)",
            "from dmarchan.redhat.com (unknown [10.45.226.112])\n by smtp.corp.redhat.com (Postfix) with ESMTP id F3714492BE0;\n Fri, 17 Nov 2023 13:18:45 +0000 (UTC)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1700227132;\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=M1EWUw0sEtSu2Jj3HwkxnwiTgtndFJU/6En0ekJ//XM=;\n b=Yhx8/LhOPKaRHh+s/nEhOsXy3juOwy5KBm9gTtdzR9Kwxa+yzaJciq9oHuGbyh97XsGVQw\n IO+QBxvXEj88xTr/9uAuTphfYCG+/kcvodO3+zExU/YdXnVGQDzmakTMCGvs90Azw+jAVe\n mQOeAEkubhJsJ04ptPDgPERC8NfwBls=",
        "X-MC-Unique": "QiKFRZr-NdmfBJ_CI4AMWw-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, Nicolas Chautru <nicolas.chautru@intel.com>,\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 Chengwen Feng <fengchengwen@huawei.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>,\n Srikanth Yalavarthi <syalavarthi@marvell.com>,\n Jasvinder Singh <jasvinder.singh@intel.com>,\n Pavan Nikhilesh <pbhagavatula@marvell.com>,\n Sachin Saxena <sachin.saxena@nxp.com>,\n Hemant Agrawal <hemant.agrawal@nxp.com>,\n Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>",
        "Subject": "[RFC 3/3] lib: use per line logging",
        "Date": "Fri, 17 Nov 2023 14:18:24 +0100",
        "Message-ID": "<20231117131824.1977792-4-david.marchand@redhat.com>",
        "In-Reply-To": "<20231117131824.1977792-1-david.marchand@redhat.com>",
        "References": "<20231117131824.1977792-1-david.marchand@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.4.1 on 10.11.54.9",
        "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>\n---\n lib/bbdev/rte_bbdev.c                      |  3 ++-\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/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/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/rawdev/rte_rawdev_pmd.h                |  4 ++--\n lib/rcu/rte_rcu_qsbr.h                     |  9 ++++-----\n lib/stack/stack_pvt.h                      |  4 ++--\n 16 files changed, 61 insertions(+), 49 deletions(-)",
    "diff": "diff --git a/lib/bbdev/rte_bbdev.c b/lib/bbdev/rte_bbdev.c\nindex e09bb97abb..a61aa599aa 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+\tRTE_LOG_LINE(level, BBDEV, fmt , ##__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/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..34d6d95649 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 aaeaf294e6..5131d2d947 100644\n--- a/lib/cryptodev/rte_cryptodev.h\n+++ b/lib/cryptodev/rte_cryptodev.h\n@@ -31,23 +31,23 @@ extern const char **rte_cyptodev_names;\n /* Logging Macros */\n \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+\tRTE_LOG_LINE(INFO, CRYPTODEV, \\\n+\t\tRTE_FMT(RTE_FMT_HEAD(__VA_ARGS__,), \\\n \t\t\tRTE_FMT_TAIL(__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/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/metrics/rte_metrics_telemetry.c b/lib/metrics/rte_metrics_telemetry.c\nindex 1d133e1f8c..169590fdb7 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/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 6b908e7ee0..23c9f89805 100644\n--- a/lib/rcu/rte_rcu_qsbr.h\n+++ b/lib/rcu/rte_rcu_qsbr.h\n@@ -36,20 +36,19 @@ extern \"C\" {\n #include <rte_ring.h>\n \n extern int rte_rcu_log_type;\n+#define RTE_LOGTYPE_RCU 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/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)\n",
    "prefixes": [
        "RFC",
        "3/3"
    ]
}