Java中的 Logger log() 方法及示例
Logger的log()方法用于记录消息。如果当前为作为参数传递的给定消息级别启用了记录器,则创建相应的 LogRecord 并将其转发到所有已注册的输出处理程序对象。但是在 logger 类中,根据传递给方法的参数,有七种不同的 log() 方法。
- 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"); } }
输出
- 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"); } }
输出:
- 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" }); } }
输出:
- 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")); } }
输出:
- 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); } } 输出:
- 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); } } 输出:
- 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#