diff --git a/Generator/src/GenPrinter.cpp b/Generator/src/GenPrinter.cpp
index 4840bee179b367531ab4c2f32cf14ec6d3c7eebe..359f26dee192363cb2f5410332fd527577a1d640 100644
--- a/Generator/src/GenPrinter.cpp
+++ b/Generator/src/GenPrinter.cpp
@@ -4,6 +4,13 @@
 DECLARE_COMPONENT(GenPrinter)
 
 bool GenPrinter::mutate(MyHepMC::GenEvent& event){
+    auto msglevel = msgLevel();
+
+    // only print when current msglevel is MSG::DEBUG/VERBOSE
+    if (msglevel != MSG::NIL && msglevel != MSG::VERBOSE && msglevel != MSG::DEBUG) {
+        return true;
+    }
+
     std::cout << "print mc info for event "<< event.getID() << ", mc size ="<< event.m_mc_vec.size() <<  std::endl;
     for ( int i =0; i < event.m_mc_vec.size(); i++ ) {
         auto p = event.m_mc_vec.at(i);