📜  Java中的 Logger log() 方法及示例

📅  最后修改于: 2022-05-13 01:55:34.722000             🧑  作者: Mango

Java中的 Logger log() 方法及示例

Loggerlog()方法用于记录消息。如果当前为作为参数传递的给定消息级别启用了记录器,则创建相应的 LogRecord 并将其转发到所有已注册的输出处理程序对象。但是在 logger 类中,根据传递给方法的参数,有七种不同的 log() 方法。

  1. log(Level level, String msg) : 此方法用于记录消息,不带参数。只有消息将写入记录器输出。
    句法:
    public void log(Level level, String msg)
    

    参数:此方法接受两个参数level ,它是消息级别标识符之一,例如 SEVERE 和msg ,它是字符串消息(或消息目录中的键)。

    返回值:此方法不返回任何内容

    程序1:方法日志(Level level, String msg)

    // Java program to demonstrate
    // Logger.log(Level level, String msg)  method
      
    import java.util.logging.Level;
    import java.util.logging.Logger;
      
    public class GFG {
      
        public static void main(String[] args)
        {
      
            // Create a Logger
            Logger logger
                = Logger.getLogger(
                    GFG.class.getName());
      
            // log messages using log(Level level, String msg)
            logger.log(Level.INFO, "This is message 1");
            logger.log(Level.WARNING, "This is message 2");
        }
    }
    

    输出

  2. log(Level level, String msg, Object param1) :此方法用于记录一条消息,带有一个对象参数。

    句法:

    public void log(Level level, String msg, Object param1)
    

    参数:此方法接受三个参数level是消息级别标识符之一,例如 SEVERE, msg是字符串消息(或消息目录中的键)和param1是消息的参数

    返回值:此方法不返回任何内容

    程序2:方法日志(Level level,String msg,Object param1)

    // Java program to demonstrate
    // Logger.log(Level level, String msg, Object param1)
      
    import java.util.logging.Level;
    import java.util.logging.Logger;
      
    public class GFG {
      
        public static void main(String[] args)
        {
      
            // Create a Logger
            Logger logger
                = Logger.getLogger(
                    GFG.class.getName());
      
            // log messages using
            // log(Level level, String msg, Object param1)
            logger.log(Level.INFO, "logging: {0} ", "message1");
            logger.log(Level.SEVERE, "logging: {0} ", "message2");
        }
    }
    

    输出:

  3. log(Level level, String msg, Object[] params) :此方法用于记录消息,带有一组对象参数。

    句法:

    public void log(Level level, String msg, Object[] params)
    

    参数:此方法接受三个参数level是消息级别标识符之一,例如 SEVERE, msg是字符串消息(或消息目录中的键)和param1是消息的参数数组

    返回值:此方法不返回任何内容

    程序 3:方法 log(Level level, String msg, Object[] param1)

    // Java program to demonstrate
    // Logger.log(Level level, String msg, Object[] param1)
      
    import java.util.logging.Level;
    import java.util.logging.Logger;
      
    public class GFG {
      
        public static void main(String[] args)
        {
      
            // Create a Logger
            Logger logger
                = Logger.getLogger(
                    GFG.class.getName());
      
            // log messages using
            // log(Level level, String msg, Object[] param1)
            logger.log(Level.INFO, "logging: {0} {1}",
                       new Object[] { "parameter1", "parameter2" });
            logger.log(Level.WARNING, "logging: {0} {1} {2}",
                       new Object[] { "p1", "p2", "p3" });
        }
    }
    

    输出:

  4. log(Level level, String msg, Throwable throwed) :此方法用于记录一条消息,以及相关的 Throwable 信息。

    句法:

    public void log(Level level, String msg, Throwable thrown)
    

    参数:该方法接受三个参数level是消息级别标识符之一,例如 SEVERE, msg是字符串消息(或消息目录中的键)和throw是与日志消息关联的 Throwable。

    返回值:此方法不返回任何内容

    程序4:方法日志(Level level,String msg,Throwable throw)

    // Java program to demonstrate
    // Logger.log(Level level, String msg, Throwable thrown)
      
    import java.util.logging.Level;
    import java.util.logging.Logger;
      
    public class GFG {
      
        public static void main(String[] args)
        {
      
            // Create a Logger
            Logger logger
                = Logger.getLogger(
                    GFG.class.getName());
      
            // log messages using
            // log(Level level, String msg, Throwable thrown)
            logger.log(Level.SEVERE, "logging:",
                       new RuntimeException("Error"));
            logger.log(Level.WARNING, "logging: ",
                       new Exception("Exception"));
        }
    }
    

    输出:

  5. log(Level level, Throwable throw, Supplier msgSupplier) :此方法用于记录延迟构造的消息以及相关的 Throwable 信息。然后将消息和给定的 Throwable 存储在 LogRecord 中,该 LogRecord 将转发到所有已注册的输出处理程序。

    句法:

    public void log(Level level, Throwable thrown, Supplier msgSupplier)
    

    参数:此方法接受三个参数level ,它是消息级别标识符之一,例如 SEVERE,throwable 是与日志消息关联的 Throwable,msgSupplier一个函数,调用时会产生所需的日志消息。

    返回值:此方法不返回任何内容

    程序5:方法日志(Level level、Throwable throw、Supplier msgSupplier)

    // Java program to demonstrate
    // Logger.log(Level level, Throwable thrown, Supplier msgSupplier)
      
    import java.util.function.Supplier;
    import java.util.logging.Level;
    import java.util.logging.Logger;
      
    public class GFG {
      
        public static void main(String[] args)
        {
      
            // Create a Logger
            Logger logger
                = Logger.getLogger(
                    GFG.class.getName());
      
            // Create a supplier method
            Supplier StrSupplier
                = () -> new String("Logger logs");
      
            // log messages using
            // log(Level level, Throwable thrown, Supplier msgSupplier)
            logger.log(Level.SEVERE,
                       new RuntimeException("Error"),
                       StrSupplier);
        }
    }
    

    输出:

  6. log(Level level, Supplier msgSupplier) :此方法用于记录消息,仅当记录级别为实际记录消息时才构建。

    句法:

    public void log(Level level, Supplier msgSupplier)
    

    参数:此方法接受两个参数level ,它是消息级别标识符之一,例如 SEVERE 和msgSupplier ,它是一个函数,当被调用时,它会产生所需的日志消息。

    返回值:此方法不返回任何内容

    程序6:方法日志(Level level,Supplier msgSupplier)

    // Java program to demonstrate
    // Logger.log(Level level,  msgSupplier)
      
    import java.util.function.Supplier;
    import java.util.logging.Level;
    import java.util.logging.Logger;
      
    public class GFG {
      
        public static void main(String[] args)
        {
      
            // Create a Logger
            Logger logger
                = Logger.getLogger(
                    GFG.class.getName());
      
            // Create a supplier method
            Supplier StrSupplier
                = () -> new String("Logger messages");
      
            // log messages using
            // log(Level level, Supplier msgSupplier)
            logger.log(Level.SEVERE,
                       StrSupplier);
        }
    }
    

    输出:

  7. log(LogRecord record) :此方法用于记录 LogRecord。使用 logRecord 我们将记录信息到记录器输出。

    句法:

    public void log(LogRecord record)
    

    参数:该方法接受一个参数记录,即要发布的 LogRecord。

    返回值:此方法不返回任何内容

    程序7:方法日志(LogRecord记录)

    // Java program to demonstrate
    // Logger.log(LogRecord record)
      
    import java.util.logging.Level;
    import java.util.logging.LogRecord;
    import java.util.logging.Logger;
      
    public class GFG {
      
        public static void main(String[] args)
        {
      
            // Create a Logger
            Logger logger
                = Logger.getLogger(
                    GFG.class.getName());
      
            // create logRecords
            LogRecord record1 = new LogRecord(Level.INFO,
                                              "Msg 1");
            LogRecord record2 = new LogRecord(Level.INFO,
                                              "Msg 2");
      
            // log messages using
            // log(LogRecord record)
            logger.log(record1);
            logger.log(record2);
        }
    }
    

    输出:

参考资料: https: Java/util/Logger.html#