diff --git a/opm/simulators/wells/BlackoilWellModel.hpp b/opm/simulators/wells/BlackoilWellModel.hpp
index bfb8360a0..481bb9c45 100644
--- a/opm/simulators/wells/BlackoilWellModel.hpp
+++ b/opm/simulators/wells/BlackoilWellModel.hpp
@@ -306,7 +306,7 @@ namespace Opm {
             std::vector<double> depth_;
             bool initial_step_;
             bool report_step_starts_;
-            bool glift_debug = true;
+            bool glift_debug = false;
             std::unique_ptr<RateConverterType> rateConverter_;
             std::unique_ptr<VFPProperties<VFPInjProperties,VFPProdProperties>> vfp_properties_;
 
@@ -331,10 +331,6 @@ namespace Opm {
                 const std::string &msg,
                 Opm::DeferredLogger& deferred_logger) const;
 
-            void gliftDebug(
-                std::ostringstream &ss,
-                Opm::DeferredLogger& deferred_logger) const;
-
             // compute the well fluxes and assemble them in to the reservoir equations as source terms
             // and in the well equations.
             void assemble(const int iterationIdx,
diff --git a/opm/simulators/wells/BlackoilWellModel_impl.hpp b/opm/simulators/wells/BlackoilWellModel_impl.hpp
index 11f6e2a91..5b1243f35 100644
--- a/opm/simulators/wells/BlackoilWellModel_impl.hpp
+++ b/opm/simulators/wells/BlackoilWellModel_impl.hpp
@@ -26,6 +26,7 @@
 
 #include <utility>
 #include <algorithm>
+#include <fmt/format.h>
 
 namespace Opm {
     template<typename TypeTag>
@@ -402,23 +403,11 @@ namespace Opm {
     void
     BlackoilWellModel<TypeTag>::gliftDebug(
         const std::string &msg, Opm::DeferredLogger &deferred_logger) const
-    {
-        std::ostringstream ss;
-        ss << msg;
-        gliftDebug(ss, deferred_logger);
-    }
-
-    template<typename TypeTag>
-    void
-    BlackoilWellModel<TypeTag>::gliftDebug(
-        std::ostringstream &ss, Opm::DeferredLogger &deferred_logger) const
     {
         if (this->glift_debug) {
-            std::string message = ss.str();
-            if (message.empty()) return;
-            std::ostringstream ss2;
-            ss2 << "  GLIFT (DEBUG) : BlackoilWellModel : " << message;
-            deferred_logger.info(ss2.str());
+            const std::string message = fmt::format(
+                "  GLIFT (DEBUG) : BlackoilWellModel : {}", msg);
+            deferred_logger.info(message);
         }
     }
 
@@ -841,9 +830,9 @@ namespace Opm {
 
         Opm::DeferredLogger local_deferredLogger;
         if (this->glift_debug) {
-            std::ostringstream os;
-            os << "assemble() : iteration = " << iterationIdx;
-            gliftDebug(os, local_deferredLogger);
+            const std::string msg = fmt::format(
+                "assemble() : iteration {}" , iterationIdx);
+            gliftDebug(msg, local_deferredLogger);
         }
         last_report_ = SimulatorReportSingle();
         Dune::Timer perfTimer;
diff --git a/opm/simulators/wells/GasLiftRuntime.hpp b/opm/simulators/wells/GasLiftRuntime.hpp
index 7984c76b1..81ab0d97a 100644
--- a/opm/simulators/wells/GasLiftRuntime.hpp
+++ b/opm/simulators/wells/GasLiftRuntime.hpp
@@ -45,6 +45,7 @@ namespace Opm {
 #include <optional>
 #include <string>
 #include <vector>
+#include <fmt/format.h>
 
 namespace Opm
 {
@@ -76,7 +77,7 @@ namespace Opm
         void computeWellRates_(double bhp, std::vector<double> &potentials);
         void debugShowIterationInfo_(OptimizeState &state, double alq);
         void debugShowStartIteration_(double alq, bool increase);
-        void displayDebugMessage_(std::ostringstream &ss);
+        void displayDebugMessage_(const std::string &msg);
         void displayWarning_();
         void displayWarning_(std::string warning);
         double getGasRateWithLimit_(std::vector<double> &potentials);
@@ -100,7 +101,6 @@ namespace Opm
         const WellState &well_state_;
         std::string well_name_;
         bool debug;  // extra debug output
-        bool debug_disable; // act as glift optimization is disabled
 
         double alpha_w_;
         double alpha_g_;
diff --git a/opm/simulators/wells/GasLiftRuntime_impl.hpp b/opm/simulators/wells/GasLiftRuntime_impl.hpp
index b05b6461f..e73d89676 100644
--- a/opm/simulators/wells/GasLiftRuntime_impl.hpp
+++ b/opm/simulators/wells/GasLiftRuntime_impl.hpp
@@ -46,8 +46,7 @@ GasLiftRuntime(
     std_well_{std_well},
     summary_state_{summary_state},
     well_state_{well_state},
-    debug{true},  // extra debugging output
-    debug_disable{false} // act as glift optimization is disabled
+    debug{false}  // extra debugging output
 {
     int well_index = this->std_well_.indexOfWell();
     const Well::ProducerCMode& control_mode
@@ -77,10 +76,7 @@ GasLiftRuntime(
     this->eco_grad_ = glo.min_eco_gradient();
     auto& gl_well = glo.well(this->well_name_);
 
-    if (this->debug_disable) {
-        this->optimize_ = false;
-    }
-    else if(useFixedAlq_(gl_well)) {
+    if(useFixedAlq_(gl_well)) {
         updateWellStateAlqFixedValue_(gl_well);
         this->optimize_ = false; // lift gas supply is fixed
     }
@@ -155,9 +151,8 @@ void
 Opm::GasLiftRuntime<TypeTag>::
 debugShowIterationInfo_(OptimizeState &state, double alq)
 {
-    std::ostringstream ss;
-    ss << "iteration " << state.it << ", ALQ = " << alq;
-    this->displayDebugMessage_(ss);
+    const std::string msg = fmt::format("iteration {}, ALQ = {}", state.it, alq);
+    this->displayDebugMessage_(msg);
 }
 
 template<typename TypeTag>
@@ -165,25 +160,23 @@ void
 Opm::GasLiftRuntime<TypeTag>::
 debugShowStartIteration_(double alq, bool increase)
 {
-    std::ostringstream ss;
-    auto oil_rate = -this->potentials_[this->oil_pos_];
-    std::string dir = increase ? "increase" : "decrease";
-    ss << "starting " << dir << " iteration, ALQ = " << alq
-       << ", oilrate = " << oil_rate;
-    this->displayDebugMessage_(ss);
+    const std::string msg =
+        fmt::format("starting {} iteration, ALQ = {}, oilrate = {}",
+            (increase ? "increase" : "decrease"),
+            alq,
+            -this->potentials_[this->oil_pos_]);
+    this->displayDebugMessage_(msg);
 }
 
 template<typename TypeTag>
 void
 Opm::GasLiftRuntime<TypeTag>::
-displayDebugMessage_(std::ostringstream &ss)
+displayDebugMessage_(const std::string &msg)
 {
 
-    std::string message = ss.str();
-    if (message.empty()) return;
-    std::ostringstream ss2;
-    ss2 << "  GLIFT (DEBUG) : Well " << this->well_name_ << " : " << message;
-    this->deferred_logger_.info(ss2.str());
+    const std::string message = fmt::format(
+        "  GLIFT (DEBUG) : Well {} : {}", this->well_name_, msg);
+    this->deferred_logger_.info(message);
 }
 
 template<typename TypeTag>
@@ -191,9 +184,9 @@ void
 Opm::GasLiftRuntime<TypeTag>::
 displayWarning_(std::string msg)
 {
-    std::ostringstream ss;
-    ss << "GAS LIFT OPTIMIZATION, WELL: " << this->well_name_ << " : " << msg;
-    this->deferred_logger_.warning("WARNING", ss.str());
+    const std::string message = fmt::format(
+        "GAS LIFT OPTIMIZATION, WELL {} : {}", this->well_name_, msg);
+    this->deferred_logger_.warning("WARNING", message);
 }
 
 // TODO: what if the gas_rate_target_ has been defaulted
@@ -252,12 +245,13 @@ Opm::GasLiftRuntime<TypeTag>::
 logSuccess_()
 {
 
-    std::ostringstream ss;
-    std::string dir;
-    dir = (this->new_alq_ > this->orig_alq_) ? "increased" : "decreased";
-    ss << "GLIFT, WELL " << this->well_name_ << " " << dir << " ALQ from "
-       << this->orig_alq_ << " to " << this->new_alq_;
-    this->deferred_logger_.info(ss.str());
+    const std::string message = fmt::format(
+         "GLIFT, WELL {} {} ALQ from {} to {}",
+         this->well_name_,
+         ((this->new_alq_ > this->orig_alq_) ? "increased" : "decreased"),
+         this->orig_alq_,
+         this->new_alq_);
+    this->deferred_logger_.info(message);
 }
 
 /* - At this point we know that this is a production well, and that its current
@@ -648,7 +642,7 @@ checkAlqOutsideLimits(double alq, double oil_rate)
             }
         }
     }
-    if (this->parent.debug) this->parent.displayDebugMessage_(ss);
+    if (this->parent.debug) this->parent.displayDebugMessage_(ss.str());
     return result;
 }
 
@@ -683,7 +677,7 @@ checkEcoGradient(double gradient)
             if (this->parent.debug) ss << "false";
         }
     }
-    if (this->parent.debug) this->parent.displayDebugMessage_(ss);
+    if (this->parent.debug) this->parent.displayDebugMessage_(ss.str());
     return result;
 }
 
@@ -695,11 +689,10 @@ checkRate(double rate, double limit, const std::string rate_str)
 
     if (limit < rate ) {
         if (this->parent.debug) {
-            std::ostringstream ss;
-            ss << "iteration " << this->it << " : " << rate_str << " rate "
-               << rate << " exceeds target rate "
-               << limit << ". Stopping iteration";
-            this->parent.displayDebugMessage_(ss);
+            const std::string msg = fmt::format(
+                "iteration {} : rate {} exceeds target rate {}. Stopping iteration",
+                this->it, rate_str, rate, limit);
+            this->parent.displayDebugMessage_(msg);
         }
         return true;
     }
@@ -753,11 +746,11 @@ computeBhpAtThpLimit(double alq)
         this->parent.deferred_logger_,
         alq);
     if (!bhp_at_thp_limit) {
-        std::ostringstream ss;
-        ss << "Failed in getting converged bhp potential for well "
-           << this->parent.well_name_;
+        const std::string msg = fmt::format(
+          "Failed in getting converged bhp potential for well {}",
+          this->parent.well_name_);
         this->parent.deferred_logger_.warning(
-            "FAILURE_GETTING_CONVERGED_POTENTIAL", ss.str());
+            "FAILURE_GETTING_CONVERGED_POTENTIAL", msg);
         return false;
     }
     this->bhp = *bhp_at_thp_limit;
diff --git a/opm/simulators/wells/StandardWell.hpp b/opm/simulators/wells/StandardWell.hpp
index 7e216f040..d07d2b51b 100644
--- a/opm/simulators/wells/StandardWell.hpp
+++ b/opm/simulators/wells/StandardWell.hpp
@@ -43,6 +43,7 @@
 #include <dune/common/dynmatrix.hh>
 
 #include <optional>
+#include <fmt/format.h>
 
 namespace Opm
 {
@@ -256,10 +257,6 @@ namespace Opm
             const std::string &msg,
             Opm::DeferredLogger& deferred_logger) const;
 
-        void gliftDebug(
-            std::ostringstream &ss,
-            Opm::DeferredLogger& deferred_logger) const;
-
         void gasLiftOptimizeProduction(
             const Simulator& ebosSimulator,
             const SummaryState& summaryState,
@@ -378,7 +375,7 @@ namespace Opm
 
         bool changed_to_stopped_this_step_ = false;
         // Enable GLIFT debug mode. This will enable output of logging messages.
-        bool glift_debug = true;
+        bool glift_debug = false;
 
         const EvalWell& getBhp() const;
 
diff --git a/opm/simulators/wells/StandardWell_impl.hpp b/opm/simulators/wells/StandardWell_impl.hpp
index f070e4ed8..c333c740b 100644
--- a/opm/simulators/wells/StandardWell_impl.hpp
+++ b/opm/simulators/wells/StandardWell_impl.hpp
@@ -2589,10 +2589,10 @@ namespace Opm
         //   turned off by entering a zero or negative number."
         if (increment <= 0) {
             if (this->glift_debug) {
-                std::ostringstream ss;
-                ss << "Gas Lift switched off in LIFTOPT item 1 due to non-positive "
-                   << "value: " << increment;
-                gliftDebug(ss, deferred_logger);
+                const std::string msg = fmt::format(
+                    "Gas Lift switched off in LIFTOPT item 1 due to non-positive "
+                    "value: {}", increment);
+                gliftDebug(msg, deferred_logger);
             }
             return false;
         }
@@ -2615,21 +2615,21 @@ namespace Opm
         if (glo.all_newton()) {
             const int nupcol = schedule.getNupcol(report_step_idx);
             if (this->glift_debug) {
-                std::ostringstream ss;
-                ss << "LIFTOPT item4 == YES, it = " << iteration_idx
-                   << ", nupcol = " << nupcol << " -> " << " --> GLIFT optimize = "
-                   << ((iteration_idx <= nupcol) ? "TRUE" : "FALSE");
-                gliftDebug(ss, deferred_logger);
+                const std::string msg = fmt::format(
+                    "LIFTOPT item4 == YES, it = {}, nupcol = {} -->  GLIFT optimize = {}",
+                    iteration_idx,
+                    nupcol,
+                    ((iteration_idx <= nupcol) ? "TRUE" : "FALSE"));
+                gliftDebug(msg, deferred_logger);
             }
             return iteration_idx <= nupcol;
         }
         else {
             if (this->glift_debug) {
-                std::ostringstream ss;
-                ss << "LIFTOPT item4 == NO, it = " << iteration_idx
-                   << " --> GLIFT optimize = "
-                   << ((iteration_idx == 1) ? "TRUE" : "FALSE");
-                gliftDebug(ss, deferred_logger);
+                const std::string msg = fmt::format(
+                    "LIFTOPT item4 == NO, it = {} --> GLIFT optimize = {}",
+                    iteration_idx, ((iteration_idx == 1) ? "TRUE" : "FALSE"));
+                gliftDebug(msg, deferred_logger);
             }
             return iteration_idx == 1;
         }
@@ -2641,22 +2641,11 @@ namespace Opm
     gliftDebug(
         const std::string &msg, DeferredLogger& deferred_logger) const
     {
-        std::ostringstream ss;
-        ss << msg;
-        gliftDebug(ss, deferred_logger);
-    }
-
-    template<typename TypeTag>
-    void
-    StandardWell<TypeTag>::
-    gliftDebug(
-        std::ostringstream &ss, DeferredLogger& deferred_logger) const
-    {
-        std::string message = ss.str();
-        if (message.empty()) return;
-        std::ostringstream ss2;
-        ss2 << "  GLIFT (DEBUG) : Well " << this->name() << " : " << message;
-        deferred_logger.info(ss2.str());
+        if (this->glift_debug) {
+            const std::string message = fmt::format(
+                "  GLIFT (DEBUG) : Well {} : {}", this->name(), msg);
+            deferred_logger.info(message);
+        }
     }
 
     template<typename TypeTag>