diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 04e832402292530aae089e76a52bb83d87392591..be44d9b34b68ed01f746a95edd8f19488480c05b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -24,6 +24,8 @@ variables:
   CPPLIB_REGISTRY_IMAGE: $CI_REGISTRY/caosdb/src/caosdb-cpplib/testenv:$CI_COMMIT_REF_NAME
 
   CPPINTTEST_BRANCHES: https://gitlab.indiscale.com/api/v4/projects/111/repository/branches
+  OCTAVELIB_BRANCHES: https://gitlab.indiscale.com/api/v4/projects/117/repository/branches
+  JULIALIB_BRANCHES: https://gitlab.indiscale.com/api/v4/projects/116/repository/branches
   GIT_SUBMODULE_STRATEGY: normal
 
   ## FOR DEBUGGING
@@ -103,28 +105,45 @@ trigger_prepare:
     # ... use an f-branch if posible...
     - F_BRANCH=dev
     - if echo "$CI_COMMIT_REF_NAME" | grep -c "^f-" ; then
+        F_BRANCH=$CI_COMMIT_REF_NAME ;
         if curl -o /dev/null -s -w "%{http_code}" $CPPINTTEST_BRANCHES/$CI_COMMIT_REF_NAME | grep "404"; then
           CPPINT_REF=dev ;
-          F_BRANCH=dev ;
         else
           CPPINT_REF=$CI_COMMIT_REF_NAME ;
-          F_BRANCH=$CI_COMMIT_REF_NAME ;
-        fi
+        fi;
+        if curl -o /dev/null -s -w "%{http_code}" $OCTAVELIB_BRANCHES/$CI_COMMIT_REF_NAME | grep "404"; then
+          OCTAVELIB_REF=dev ;
+        else
+          OCTAVELIB_REF=$CI_COMMIT_REF_NAME ;
+        fi;
+        if curl -o /dev/null -s -w "%{http_code}" $JULIALIB_BRANCHES/$CI_COMMIT_REF_NAME | grep "404"; then
+          JULIALIB_REF=dev ;
+        else
+          JULIALIB_REF=$CI_COMMIT_REF_NAME ;
+        fi;
       fi;
     # ... or use main if possible...
     - if [[ "$CI_COMMIT_REF_NAME" == "main" ]] ; then
         CPPINT_REF=main ;
+        OCTAVELIB_REF=main ;
+        JULIALIB_REF=main
         F_BRANCH=main ;
       fi
     - if echo "$CI_COMMIT_REF_NAME" | grep -c "^v" ; then
         CPPINT_REF=main ;
+        OCTAVELIB_REF=main ;
+        JULIALIB_REF=main ;
         F_BRANCH=main ;
       fi
     # ... and fall-back to dev
     - CPPINT_REF=${CPPINT_REF:-dev}
+    - OCTAVELIB_REF=${OCTAVELIB_REF:-dev}
+    - JULIALIB_REF=${JULIALIB_REF:-dev}
 
     # Write to dotenv
     - echo "CPPINT_REF=${CPPINT_REF}" >> "$DOTENV"
+    - echo "OCTAVELIB_REF=${OCTAVELIB_REF}" >> "$DOTENV"
+    - echo "JULIALIB_REF=${JULIALIB_REF}" >> "$DOTENV"
     - echo "F_BRANCH=${F_BRANCH}" >> "$DOTENV"
     - cat "$DOTENV"
   artifacts:
@@ -154,6 +173,44 @@ trigger_inttest:
     branch: $CPPINT_REF
     strategy: depend
 
+# After the cppinttest have been successful, also start tests for Octave...
+trigger_octavelib:
+  stage: deploy
+  needs: [ trigger_prepare ]
+  inherit:
+    variables:
+      # List the variables that shall be inherited, which also means they will override any equally
+      # named varibles in child pipelines.
+      - TRIGGERED_BY_REPO
+      - TRIGGERED_BY_REF
+      - TRIGGERED_BY_HASH
+      - CPPLIB_REGISTRY_IMAGE
+  variables:
+    # dotenv variables must be set again here.
+    F_BRANCH: $F_BRANCH
+  trigger:
+    project: caosdb/src/caosdb-octavelib
+    branch: $OCTAVELIB_REF
+
+# ... and for Julia.
+trigger_julialib:
+  stage: deploy
+  needs: [ trigger_prepare ]
+  inherit:
+    variables:
+      # List the variables that shall be inherited, which also means they will override any equally
+      # named varibles in child pipelines.
+      - TRIGGERED_BY_REPO
+      - TRIGGERED_BY_REF
+      - TRIGGERED_BY_HASH
+      - CPPLIB_REGISTRY_IMAGE
+  variables:
+    # dotenv variables must be set again here.
+    F_BRANCH: $F_BRANCH
+  trigger:
+    project: caosdb/src/caosdb-julialib
+    branch: $JULIALIB_REF
+
 # Build the sphinx documentation and make it ready for deployment by Gitlab Pages
 # Special job for serving a static website. See https://docs.gitlab.com/ee/ci/yaml/README.html#pages
 .pages_prepare: &pages_prepare
diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md
index be4e73f31904decf166a523c229b58a0ca47af10..a0dbb62030923c776c69e2440bee0f313f5056b3 100644
--- a/doc/CHANGELOG.md
+++ b/doc/CHANGELOG.md
@@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 ### Added
 
 * Simple `User` class and methods for user creation/retrieval/deletion.
+* Added more variants for the `operator<<` of `LoggerOutputStream` (for `bool`
+  and `std::endl`).
 
 ### Changed
 
diff --git a/include/caosdb/logging.h b/include/caosdb/logging.h
index e50c70f69bc0ed45e8f6a60f78cd11e4142b0568..94c78ed3d6c303149e755c4aa83e757a04500724 100644
--- a/include/caosdb/logging.h
+++ b/include/caosdb/logging.h
@@ -27,6 +27,7 @@
 #include <cstdint>            // for uint64_t
 #include <iosfwd>             // for streamsize
 #include <memory>             // for shared_ptr
+#include <ostream>            // for ostream
 #include <string>             // for string
 #include <vector>             // for vector
 
@@ -37,6 +38,8 @@ const std::string logger_name = "caosdb::logging";
 class LoggerOutputStream {
 public:
   LoggerOutputStream(std::string channel, int level);
+  auto operator<<(std::ostream &(*f)(std::ostream &)) -> LoggerOutputStream &;
+  auto operator<<(bool msg) -> LoggerOutputStream &;
   auto operator<<(int msg) -> LoggerOutputStream &;
   auto operator<<(uint64_t msg) -> LoggerOutputStream &;
   auto operator<<(int64_t msg) -> LoggerOutputStream &;
diff --git a/src/caosdb/logging.cpp b/src/caosdb/logging.cpp
index 7aaedee77696ada264418c104b6c8c28c4bb7b24..ecc34d668971eaa22cd7ff727d8f54c84c2f3bdc 100644
--- a/src/caosdb/logging.cpp
+++ b/src/caosdb/logging.cpp
@@ -63,6 +63,18 @@ private:
 LoggerOutputStream::LoggerOutputStream(std::string channel, int level)
   : channel(std::move(channel)), level(level) {}
 
+auto LoggerOutputStream::operator<<(std::ostream &(*f)(std::ostream &)) -> LoggerOutputStream & {
+  BOOST_LOG_CHANNEL_SEV(caosdb::logging::logger::get(), this->channel, this->level) << f;
+
+  return *this;
+}
+
+auto LoggerOutputStream::operator<<(bool msg) -> LoggerOutputStream & {
+  BOOST_LOG_CHANNEL_SEV(caosdb::logging::logger::get(), this->channel, this->level) << msg;
+
+  return *this;
+}
+
 auto LoggerOutputStream::operator<<(std::streambuf *msg) -> LoggerOutputStream & {
   BOOST_LOG_CHANNEL_SEV(caosdb::logging::logger::get(), channel, this->level) << msg;