diff --git a/drivers/crypto/null/null_crypto_pmd.c b/drivers/crypto/null/null_crypto_pmd.c
index 052b6546c..8699f1219 100644
--- a/drivers/crypto/null/null_crypto_pmd.c
+++ b/drivers/crypto/null/null_crypto_pmd.c
@@ -161,10 +161,9 @@ cryptodev_null_create(const char *name,
 {
 	struct rte_cryptodev *dev;
 	struct null_crypto_private *internals;
-
 	dev = rte_cryptodev_pmd_create(name, &vdev->device, init_params);
 	if (dev == NULL) {
-		NULL_CRYPTO_LOG_ERR("failed to create cryptodev vdev");
+		NULL_LOG(ERR, "failed to create cryptodev vdev");
 		return -EFAULT;
 	}
 
@@ -209,8 +208,9 @@ cryptodev_null_probe(struct rte_vdev_device *dev)
 
 	retval = rte_cryptodev_pmd_parse_input_args(&init_params, args);
 	if (retval) {
-		RTE_LOG(ERR, PMD,
-			"Failed to parse initialisation arguments[%s]\n", args);
+		NULL_LOG(ERR,
+				"Failed to parse initialisation arguments[%s]",
+				args);
 		return -EINVAL;
 	}
 
@@ -249,3 +249,10 @@ RTE_PMD_REGISTER_PARAM_STRING(CRYPTODEV_NAME_NULL_PMD,
 	"socket_id=<int>");
 RTE_PMD_REGISTER_CRYPTO_DRIVER(null_crypto_drv, cryptodev_null_pmd_drv.driver,
 		cryptodev_driver_id);
+
+RTE_INIT(null_init_log);
+static void
+null_init_log(void)
+{
+	null_logtype_driver = rte_log_register("pmd.crypto.null");
+}
diff --git a/drivers/crypto/null/null_crypto_pmd_ops.c b/drivers/crypto/null/null_crypto_pmd_ops.c
index f8e5f61f1..9a78e91d1 100644
--- a/drivers/crypto/null/null_crypto_pmd_ops.c
+++ b/drivers/crypto/null/null_crypto_pmd_ops.c
@@ -163,15 +163,15 @@ null_crypto_pmd_qp_create_processed_pkts_ring(struct null_crypto_qp *qp,
 	r = rte_ring_lookup(qp->name);
 	if (r) {
 		if (rte_ring_get_size(r) >= ring_size) {
-			NULL_CRYPTO_LOG_INFO(
-				"Reusing existing ring %s for processed packets",
-				qp->name);
+			NULL_LOG(INFO,
+					"Reusing existing ring %s for "
+					" processed packets", qp->name);
 			return r;
 		}
 
-		NULL_CRYPTO_LOG_INFO(
-			"Unable to reuse existing ring %s for processed packets",
-			 qp->name);
+		NULL_LOG(INFO,
+				"Unable to reuse existing ring %s for "
+				" processed packets", qp->name);
 		return NULL;
 	}
 
@@ -190,7 +190,7 @@ null_crypto_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 	int retval;
 
 	if (qp_id >= internals->max_nb_qpairs) {
-		NULL_CRYPTO_LOG_ERR("Invalid qp_id %u, greater than maximum "
+		NULL_LOG(ERR, "Invalid qp_id %u, greater than maximum "
 				"number of queue pairs supported (%u).",
 				qp_id, internals->max_nb_qpairs);
 		return (-EINVAL);
@@ -204,7 +204,7 @@ null_crypto_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 	qp = rte_zmalloc_socket("Null Crypto PMD Queue Pair", sizeof(*qp),
 					RTE_CACHE_LINE_SIZE, socket_id);
 	if (qp == NULL) {
-		NULL_CRYPTO_LOG_ERR("Failed to allocate queue pair memory");
+		NULL_LOG(ERR, "Failed to allocate queue pair memory");
 		return (-ENOMEM);
 	}
 
@@ -213,15 +213,16 @@ null_crypto_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 
 	retval = null_crypto_pmd_qp_set_unique_name(dev, qp);
 	if (retval) {
-		NULL_CRYPTO_LOG_ERR("Failed to create unique name for null "
+		NULL_LOG(ERR, "Failed to create unique name for null "
 				"crypto device");
+
 		goto qp_setup_cleanup;
 	}
 
 	qp->processed_pkts = null_crypto_pmd_qp_create_processed_pkts_ring(qp,
 			qp_conf->nb_descriptors, socket_id);
 	if (qp->processed_pkts == NULL) {
-		NULL_CRYPTO_LOG_ERR("Failed to create unique name for null "
+		NULL_LOG(ERR, "Failed to create unique name for null "
 				"crypto device");
 		goto qp_setup_cleanup;
 	}
@@ -280,19 +281,19 @@ null_crypto_pmd_session_configure(struct rte_cryptodev *dev __rte_unused,
 	int ret;
 
 	if (unlikely(sess == NULL)) {
-		NULL_CRYPTO_LOG_ERR("invalid session struct");
+		NULL_LOG(ERR, "invalid session struct");
 		return -EINVAL;
 	}
 
 	if (rte_mempool_get(mp, &sess_private_data)) {
-		CDEV_LOG_ERR(
-			"Couldn't get object from session mempool");
+		NULL_LOG(ERR,
+				"Couldn't get object from session mempool");
 		return -ENOMEM;
 	}
 
 	ret = null_crypto_set_session_parameters(sess_private_data, xform);
 	if (ret != 0) {
-		NULL_CRYPTO_LOG_ERR("failed configure session parameters");
+		NULL_LOG(ERR, "failed configure session parameters");
 
 		/* Return session to mempool */
 		rte_mempool_put(mp, sess_private_data);
diff --git a/drivers/crypto/null/null_crypto_pmd_private.h b/drivers/crypto/null/null_crypto_pmd_private.h
index 0fd133625..190b88dc7 100644
--- a/drivers/crypto/null/null_crypto_pmd_private.h
+++ b/drivers/crypto/null/null_crypto_pmd_private.h
@@ -8,25 +8,12 @@
 #define CRYPTODEV_NAME_NULL_PMD		crypto_null
 /**< Null crypto PMD device name */
 
-#define NULL_CRYPTO_LOG_ERR(fmt, args...) \
-	RTE_LOG(ERR, CRYPTODEV, "[%s] %s() line %u: " fmt "\n",  \
-			RTE_STR(CRYPTODEV_NAME_NULL_PMD), \
-			__func__, __LINE__, ## args)
+int null_logtype_driver;
 
-#ifdef RTE_LIBRTE_NULL_CRYPTO_DEBUG
-#define NULL_CRYPTO_LOG_INFO(fmt, args...) \
-	RTE_LOG(INFO, CRYPTODEV, "[%s] %s() line %u: " fmt "\n", \
-			RTE_STR(CRYPTODEV_NAME_NULL_PMD), \
-			__func__, __LINE__, ## args)
-
-#define NULL_CRYPTO_LOG_DBG(fmt, args...) \
-	RTE_LOG(DEBUG, CRYPTODEV, "[%s] %s() line %u: " fmt "\n", \
-			RTE_STR(CRYPTODEV_NAME_NULL_PMD), \
-			__func__, __LINE__, ## args)
-#else
-#define NULL_CRYPTO_LOG_INFO(fmt, args...)
-#define NULL_CRYPTO_LOG_DBG(fmt, args...)
-#endif
+#define NULL_LOG(level, fmt, ...)  \
+	rte_log(RTE_LOG_ ## level, null_logtype_driver,  \
+			"%s() line %u: "fmt "\n", __func__, __LINE__,  \
+					## __VA_ARGS__)
 
 
 /** private data structure for each NULL crypto device */
