diff --git a/src/components/cc-logs/cc-logs.js b/src/components/cc-logs/cc-logs.js
index f82c233df..e3738a6c7 100644
--- a/src/components/cc-logs/cc-logs.js
+++ b/src/components/cc-logs/cc-logs.js
@@ -596,6 +596,10 @@ export class CcLogs extends LitElement {
     this._setFollow(false);
   }
 
+  _onSelectAll () {
+    this._logsCtrl.selectAll();
+  }
+
   // endregion
 
   // region Copy logic
diff --git a/src/components/cc-logs/logs-controller.js b/src/components/cc-logs/logs-controller.js
index d0bae5d56..594683e1a 100644
--- a/src/components/cc-logs/logs-controller.js
+++ b/src/components/cc-logs/logs-controller.js
@@ -173,6 +173,15 @@ export class LogsController {
     this._host._onSelectionChanged();
   }
 
+  selectAll () {
+    if (this._logsFiltered.length > 0) {
+      this._selection = new Set(this._logsFiltered);
+      this._selectionLast = this._logsFiltered[this._logsFiltered.length - 1];
+      this._host.requestUpdate();
+      this._host._onSelectionChanged();
+    }
+  }
+
   /**
    * @return {number} The length of the selection
    */
diff --git a/src/components/cc-logs/logs-input-controller.js b/src/components/cc-logs/logs-input-controller.js
index 48fcfc9ef..b880b08bb 100644
--- a/src/components/cc-logs/logs-input-controller.js
+++ b/src/components/cc-logs/logs-input-controller.js
@@ -103,6 +103,11 @@ export class LogsInputController {
       const logIndex = Number(e.target.closest(`.log`).dataset.index);
       this._host._onClickLog(logIndex, this._keyModifiers);
     }
+    else if (e.key === 'a' && this._keyModifiers.ctrl) {
+      // we prevent default because we don't want the native keyboard "ctrl + a" to be fired
+      e.preventDefault();
+      this._host._onSelectAll();
+    }
   }
 
   onKeyUp (e) {