diff --git a/package.json b/package.json
index dc946cd45b..867c498e07 100644
--- a/package.json
+++ b/package.json
@@ -235,6 +235,7 @@
 		"vue-cropperjs": "3.0.0",
 		"vue-i18n": "8.8.2",
 		"vue-js-modal": "1.3.28",
+		"vue-json-viewer": "2.0.6",
 		"vue-loader": "15.7.0",
 		"vue-marquee-text-component": "1.1.1",
 		"vue-prism-component": "1.1.1",
diff --git a/src/client/app/admin/views/logs.vue b/src/client/app/admin/views/logs.vue
index 9a06d89ba1..31e06feaf6 100644
--- a/src/client/app/admin/views/logs.vue
+++ b/src/client/app/admin/views/logs.vue
@@ -20,7 +20,10 @@
 
 			<div class="nqjzuvev">
 				<code v-for="log in logs" :key="log._id" :class="log.level">
-					<mk-time :time="log.createdAt"/> [{{ log.domain.join('.') }}] {{ log.message }}
+					<details>
+						<summary><mk-time :time="log.createdAt"/> [{{ log.domain.join('.') }}] {{ log.message }}</summary>
+						<json-viewer v-if="log.data" :value="log.data"></json-viewer>
+					</details>
 				</code>
 			</div>
 		</section>
@@ -32,10 +35,15 @@
 import Vue from 'vue';
 import i18n from '../../i18n';
 import { faStream } from '@fortawesome/free-solid-svg-icons';
+import JsonViewer from 'vue-json-viewer';
 
 export default Vue.extend({
 	i18n: i18n('admin/views/logs.vue'),
 
+	components: {
+		JsonViewer
+	},
+
 	data() {
 		return {
 			logs: [],