=== modified file 'src/com/goldencode/p2j/net/RemoteObject.java'
--- src/com/goldencode/p2j/net/RemoteObject.java	2023-05-12 10:05:12 +0000
+++ src/com/goldencode/p2j/net/RemoteObject.java	2023-05-16 07:49:31 +0000
@@ -1335,7 +1335,7 @@
     */
    private static void logExport(String group, String name)
    {
-      if (LOG.isLoggable(Level.FINER) || LOG.isLoggable(Level.FINEST))
+      if (LOG.isLoggable(Level.FINER))
       {
          LOG.finer("exported " + group + ':' + name);
       }

=== modified file 'src/com/goldencode/p2j/util/logging/CentralLogger.java'
--- src/com/goldencode/p2j/util/logging/CentralLogger.java	2023-05-11 14:45:29 +0000
+++ src/com/goldencode/p2j/util/logging/CentralLogger.java	2023-05-16 08:09:47 +0000
@@ -130,6 +130,9 @@
    /** The default name for client log files. Used when server-side logging enabled. */
    static final String DEFAULT_LOG_FILE_NAME =
       "fwd_%m_" + SORTABLE_DATETIME_FORMAT + "_%uos_%pid_%uf_%as_%g.log";
+   
+   /** The default root logger level for server processes. */
+   static final Level DEFAULT_ROOT_LEVEL = Level.INFO;
 
    /**
     * The mode of logger operation. There is one more temporary mode designed for ClassLoaders, not included

=== modified file 'src/com/goldencode/p2j/util/logging/CentralLoggerClientStandalone.java'
--- src/com/goldencode/p2j/util/logging/CentralLoggerClientStandalone.java	2023-05-11 14:45:29 +0000
+++ src/com/goldencode/p2j/util/logging/CentralLoggerClientStandalone.java	2023-05-16 08:09:47 +0000
@@ -79,7 +79,7 @@
 {
    /** The one and only log handler, responsible for writing all logs to files. */
    private static volatile FileHandler fileHandler;
-   
+
    /**
     * Package-private constructor for CentralLoggerClientStandalone.
     *

=== modified file 'src/com/goldencode/p2j/util/logging/CentralLoggerFallback.java'
--- src/com/goldencode/p2j/util/logging/CentralLoggerFallback.java	2023-05-08 08:00:54 +0000
+++ src/com/goldencode/p2j/util/logging/CentralLoggerFallback.java	2023-05-16 08:17:49 +0000
@@ -71,6 +71,9 @@
 {
    /** The formatter for logs. */
    private static final Formatter LOG_FORMATTER = new SimpleLogFormatter();
+
+   /** The root logger's level. */
+   private static Level rootLevel = DEFAULT_ROOT_LEVEL;
    
    /**
     * Package-private constructor for CentralLoggerFallback.
@@ -86,6 +89,17 @@
    {
       super(loggerName, checkParentLevels, excludeSMContext);
    }
+
+   /**
+    * Sets the root logger's level. Expected to be the first statement in the entry class main method.
+    * 
+    * @param    level
+    *           The new root logger's level.
+    */
+   public static void setRootLevel(Level level)
+   {
+      rootLevel = level;
+   }   
    
    /**
     * Publishes a log record by printing it to System.out. Log records with level WARNING and ERROR are 
@@ -97,6 +111,10 @@
    @Override
    protected void publish(LogRecord logRecord)
    {
+      if (logRecord.getLevel().intValue() < rootLevel.intValue())
+      {
+         return;
+      }
       if (logRecord.getLevel().intValue() >= Level.WARNING.intValue())
       {
          System.err.print(LOG_FORMATTER.format(logRecord));

=== modified file 'src/com/goldencode/p2j/util/logging/CentralLoggerServer.java'
--- src/com/goldencode/p2j/util/logging/CentralLoggerServer.java	2023-05-11 15:29:43 +0000
+++ src/com/goldencode/p2j/util/logging/CentralLoggerServer.java	2023-05-16 08:09:47 +0000
@@ -93,9 +93,6 @@
    /** Counter for unique name for the spawner logger Thread. */
    private static final AtomicInteger SPAWNER_THREAD_COUNTER = new AtomicInteger(1);
 
-   /** The default root logger level for server processes. */
-   private static final Level DEFAULT_ROOT_LEVEL = Level.INFO;
-
    /** The default logger level for spawner processes. */
    private static final Level DEFAULT_SPAWNER_LEVEL = Level.WARNING;
 
@@ -165,9 +162,10 @@
             }
             catch (Throwable t)
             {
-               LOG.severe("Server process id can't be determined at this time, which will lead to a corrupt" +
-                             " log file name for the server process. The native library `p2j` loading method " +
-                             "is likely the cause of the issue.", t);
+               LOG.warning("Server process id can't be determined at this time, which will lead to a " +
+                              "corrupt log file name for the server process. The native library `p2j` " +
+                              "loading method is likely the cause of the issue.");
+               LOG.log(Level.FINE, "", t);
                return 0L;
             }
          };

