diff --git a/openbsc/src/bsc_vty.c b/openbsc/src/bsc_vty.c
index 55a667c..6e07a6b 100644
--- a/openbsc/src/bsc_vty.c
+++ b/openbsc/src/bsc_vty.c
@@ -2504,18 +2504,16 @@
 	LOGGING_STR FILTER_STR
       "Filter log messages by IMSI\n" "IMSI to be used as filter\n")
 {
-	struct telnet_connection *conn;
+	struct log_target *tgt = osmo_log_vty2tgt(vty);
 
-	conn = (struct telnet_connection *) vty->priv;
-	if (!conn->dbg) {
-		vty_out(vty, "Logging was not enabled.%s", VTY_NEWLINE);
+	if (!tgt)
 		return CMD_WARNING;
-	}
 
-	log_set_imsi_filter(conn->dbg, argv[0]);
+	log_set_imsi_filter(tgt, argv[0]);
 	return CMD_SUCCESS;
 }
 
+
 DEFUN(drop_bts,
       drop_bts_cmd,
       "drop bts connection <0-65535> (oml|rsl)",
@@ -2635,6 +2633,7 @@
 	install_element_ve(&show_paging_cmd);
 
 	logging_vty_add_cmds();
+	install_element(CFG_LOG_NODE, &logging_fltr_imsi_cmd);
 
 	install_element(CONFIG_NODE, &cfg_net_cmd);
 	install_node(&net_node, config_write_net);
diff --git a/openbsc/src/gprs/gprs_bssgp_vty.c b/openbsc/src/gprs/gprs_bssgp_vty.c
index 6208ae3..9ebd090 100644
--- a/openbsc/src/gprs/gprs_bssgp_vty.c
+++ b/openbsc/src/gprs/gprs_bssgp_vty.c
@@ -138,16 +138,13 @@
 	"BVCI of the BVC to be filtered\n"
 	"BSSGP Virtual Connection Identifier (BVCI)\n")
 {
-	struct telnet_connection *conn;
+	struct log_target *tgt = osmo_log_vty2tgt(vty);
 	struct bssgp_bvc_ctx *bvc;
 	uint16_t nsei = atoi(argv[0]);
 	uint16_t bvci = atoi(argv[1]);
 
-	conn = (struct telnet_connection *) vty->priv;
-	if (!conn->dbg) {
-		vty_out(vty, "Logging was not enabled.%s", VTY_NEWLINE);
+	if (!tgt)
 		return CMD_WARNING;
-	}
 
 	bvc = btsctx_by_bvci_nsei(bvci, nsei);
 	if (!bvc) {
@@ -155,7 +152,7 @@
 		return CMD_WARNING;
 	}
 
-	log_set_bvc_filter(conn->dbg, bvc);
+	log_set_bvc_filter(tgt, bvc);
 	return CMD_SUCCESS;
 }
 
@@ -166,6 +163,8 @@
 	install_element_ve(&show_bvc_cmd);
 	install_element_ve(&logging_fltr_bvc_cmd);
 
+	install_element(CFG_LOG_NODE, &logging_fltr_bvc_cmd);
+
 	install_element(CONFIG_NODE, &cfg_bssgp_cmd);
 	install_node(&bssgp_node, config_write_bssgp);
 	install_default(BSSGP_NODE);
diff --git a/openbsc/src/gprs/gprs_ns_vty.c b/openbsc/src/gprs/gprs_ns_vty.c
index 42fc025..39277fc 100644
--- a/openbsc/src/gprs/gprs_ns_vty.c
+++ b/openbsc/src/gprs/gprs_ns_vty.c
@@ -513,15 +513,12 @@
 	"Identify NS-VC by NSVCI\n"
 	"Numeric identifier\n")
 {
-	struct telnet_connection *conn;
+	struct log_target *tgt = osmo_log_vty2tgt(vty);
 	struct gprs_nsvc *nsvc;
 	uint16_t id = atoi(argv[1]);
 
-	conn = (struct telnet_connection *) vty->priv;
-	if (!conn->dbg) {
-		vty_out(vty, "Logging was not enabled.%s", VTY_NEWLINE);
+	if (!tgt)
 		return CMD_WARNING;
-	}
 
 	if (!strcmp(argv[0], "nsei"))
 		nsvc = nsvc_by_nsei(vty_nsi, id);
@@ -533,7 +530,7 @@
 		return CMD_WARNING;
 	}
 
-	log_set_nsvc_filter(conn->dbg, nsvc);
+	log_set_nsvc_filter(tgt, nsvc);
 	return CMD_SUCCESS;
 }
 
@@ -546,6 +543,8 @@
 	install_element_ve(&show_nse_cmd);
 	install_element_ve(&logging_fltr_nsvc_cmd);
 
+	install_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd);
+
 	install_element(CONFIG_NODE, &cfg_ns_cmd);
 	install_node(&ns_node, config_write_ns);
 	install_default(NS_NODE);
