diff --git a/package-lock.json b/package-lock.json
index f2174cb4..f1226da6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,7 +12,7 @@
         "@nuxtjs/dayjs": "^1.4.1",
         "@nuxtjs/dotenv": "^1.4.1",
         "bootstrap": "^4.6.1",
-        "bootstrap-vue": "^2.21.2",
+        "bootstrap-vue": "^2.22.0",
         "cookie-universal-nuxt": "^2.1.5",
         "jwt-decode": "^3.1.2",
         "lodash": "^4.17.21",
@@ -32,7 +32,7 @@
         "@nuxtjs/style-resources": "^1.2.1",
         "eslint": "^7.32.0",
         "eslint-plugin-nuxt": ">=2.0.0",
-        "sass": "^1.50.0",
+        "sass": "^1.51.0",
         "sass-loader": "^10.2.1"
       }
     },
@@ -4188,13 +4188,13 @@
       }
     },
     "node_modules/bootstrap-vue": {
-      "version": "2.21.2",
-      "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.21.2.tgz",
-      "integrity": "sha512-0Exe+4MZysqhZNXIKf4TzkvXaupxh9EHsoCRez0o5Dc0J7rlafayOEwql63qXv74CgZO8E4U8ugRNJko1vMvNw==",
+      "version": "2.22.0",
+      "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.22.0.tgz",
+      "integrity": "sha512-denjR/ae0K7Jrcqud3TrZWw0p/crtyigeGUNunWQ4t+KFi+7rzJ6j6lx1W5/gpUtSSUgNbWrXcHH4lIWXzXOOQ==",
       "hasInstallScript": true,
       "dependencies": {
         "@nuxt/opencollective": "^0.3.2",
-        "bootstrap": ">=4.5.3 <5.0.0",
+        "bootstrap": "^4.6.1",
         "popper.js": "^1.16.1",
         "portal-vue": "^2.1.7",
         "vue-functional-data-merge": "^3.1.0"
@@ -12830,9 +12830,9 @@
       "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
     },
     "node_modules/sass": {
-      "version": "1.50.0",
-      "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.0.tgz",
-      "integrity": "sha512-cLsD6MEZ5URXHStxApajEh7gW189kkjn4Rc8DQweMyF+o5HF5nfEz8QYLMlPsTOD88DknatTmBWkOcw5/LnJLQ==",
+      "version": "1.51.0",
+      "resolved": "https://registry.npmjs.org/sass/-/sass-1.51.0.tgz",
+      "integrity": "sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==",
       "dev": true,
       "dependencies": {
         "chokidar": ">=3.0.0 <4.0.0",
@@ -19835,12 +19835,12 @@
       "requires": {}
     },
     "bootstrap-vue": {
-      "version": "2.21.2",
-      "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.21.2.tgz",
-      "integrity": "sha512-0Exe+4MZysqhZNXIKf4TzkvXaupxh9EHsoCRez0o5Dc0J7rlafayOEwql63qXv74CgZO8E4U8ugRNJko1vMvNw==",
+      "version": "2.22.0",
+      "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.22.0.tgz",
+      "integrity": "sha512-denjR/ae0K7Jrcqud3TrZWw0p/crtyigeGUNunWQ4t+KFi+7rzJ6j6lx1W5/gpUtSSUgNbWrXcHH4lIWXzXOOQ==",
       "requires": {
         "@nuxt/opencollective": "^0.3.2",
-        "bootstrap": ">=4.5.3 <5.0.0",
+        "bootstrap": "^4.6.1",
         "popper.js": "^1.16.1",
         "portal-vue": "^2.1.7",
         "vue-functional-data-merge": "^3.1.0"
@@ -26538,9 +26538,9 @@
       "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
     },
     "sass": {
-      "version": "1.50.0",
-      "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.0.tgz",
-      "integrity": "sha512-cLsD6MEZ5URXHStxApajEh7gW189kkjn4Rc8DQweMyF+o5HF5nfEz8QYLMlPsTOD88DknatTmBWkOcw5/LnJLQ==",
+      "version": "1.51.0",
+      "resolved": "https://registry.npmjs.org/sass/-/sass-1.51.0.tgz",
+      "integrity": "sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==",
       "dev": true,
       "requires": {
         "chokidar": ">=3.0.0 <4.0.0",
diff --git a/package.json b/package.json
index 2dced1b7..a4184675 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "ffplayout",
-  "version": "4.0.0",
+  "version": "4.1.0",
   "description": "web GUI for ffplayout engine",
   "author": "Jonathan Baecker",
   "private": true,
@@ -16,7 +16,7 @@
     "@nuxtjs/dayjs": "^1.4.1",
     "@nuxtjs/dotenv": "^1.4.1",
     "bootstrap": "^4.6.1",
-    "bootstrap-vue": "^2.21.2",
+    "bootstrap-vue": "^2.22.0",
     "cookie-universal-nuxt": "^2.1.5",
     "jwt-decode": "^3.1.2",
     "lodash": "^4.17.21",
@@ -36,7 +36,7 @@
     "@nuxtjs/style-resources": "^1.2.1",
     "eslint": "^7.32.0",
     "eslint-plugin-nuxt": ">=2.0.0",
-    "sass": "^1.50.0",
+    "sass": "^1.51.0",
     "sass-loader": "^10.2.1"
   }
 }
diff --git a/pages/logging.vue b/pages/logging.vue
index a8ff857d..272dffc3 100644
--- a/pages/logging.vue
+++ b/pages/logging.vue
@@ -32,13 +32,13 @@ export default {
     filters: {
         formatStr (text) {
             return text
-                .replace(/(".*")/g, '<span class="log-cmd">$1</span>')
-                .replace(/(?<!".*)(\/.*)/g, '<span class="log-path">$1</span>')
-                .replace(/(\/[\w\d.\-/]+\n)/g, '<span class="log-path">$1</span>')
-                .replace(/((tcp|https?):\/\/[\w\d.:]+)/g, '<span class="log-url">$1</span>')
-                .replace(/(\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}[0-9,.]+\])/g, '<span class="log-time">$1</span>')
-                .replace(/\[INFO\]/g, '<span class="log-info">[INFO]</span>')
-                .replace(/\[WARNING\]/g, '<span class="log-warning">[WARNING]</span>')
+                /* eslint-disable  no-control-regex */
+                .replace(/\x1B\[33m(.*?)\x1B\[0m/g, '<span class="log-number">$1</span>')
+                .replace(/\[1m\x1B\[35m(.*?)\[0m\x1B\[22m/g, '<span class="log-addr">$1</span>')
+                .replace(/\[94m(.*?)\[0m/g, '<span class="log-cmd">$1</span>')
+                .replace(/(\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{5}\])/g, '<span class="log-time">$1</span>')
+                .replace(/\[ INFO\]/g, '<span class="log-info">[ INFO]</span>')
+                .replace(/\[ WARN\]/g, '<span class="log-warning">[ WARN]</span>')
                 .replace(/\[ERROR\]/g, '<span class="log-error">[ERROR]</span>')
                 .replace(/\[DEBUG\]/g, '<span class="log-debug">[DEBUG]</span>')
                 .replace(/\[Decoder\]/g, '<span class="log-decoder">[Decoder]</span>')
@@ -107,6 +107,23 @@ export default {
     overflow: hidden
 }
 
+.log-time {
+    color: #666864;
+}
+
+.log-number {
+    color: #e2c317;
+}
+
+.log-addr {
+    color: #ad7fa8;
+    font-weight: 500;
+}
+
+.log-cmd {
+    color: #6c95c2;
+}
+
 .log-content {
     color: #ececec;
     width: 100%;
@@ -116,24 +133,20 @@ export default {
     white-space: pre;
 }
 
-.log-time {
-    color: #a7a7a7;
-}
-
 .log-info {
-    color: #51d1de;
+    color: #8ae234;
 }
 
 .log-warning {
-    color: #e4a428;
+    color: #ff8700;
 }
 
 .log-error {
-    color: #e42e28;
+    color: #d32828;
 }
 
 .log-debug {
-    color: #23e493;
+    color: #6e99c7;
 }
 
 .log-decoder {
@@ -148,15 +161,4 @@ export default {
     color: #23cbdd;
 }
 
-.log-path {
-    color: #e366cf;
-}
-
-.log-url {
-    color: #e3d666;
-}
-
-.log-cmd {
-    color: #f1aa77;
-}
 </style>