Java中的 Logger getLogger() 方法及示例
Logger类的getLogger()方法用于查找或创建记录器。如果存在具有传递名称的记录器,则该方法将返回该记录器,否则方法将创建一个具有该名称的新记录器并返回它。有两种类型的 getLogger() 方法,具体取决于传递的参数。
- getLogger(Java.lang.String) :此方法用于查找或创建一个名称作为参数传递的记录器。如果 logger 不存在传递的名称,它将创建一个新的 logger。如果通过此方法创建了一个新的记录器,那么它的日志级别将根据 LogManager 配置进行配置,并且它将被配置为还将日志输出发送到其父处理程序。它将在 LogManager 全局命名空间中注册。
句法:
public static Logger getLogger(String name)
参数:此方法接受单个参数名称,该名称是表示记录器名称的字符串。这应该是一个点分隔的名称,通常应该基于子系统的包名或类名,例如Java.net 或 javax.swing
返回值:该方法返回一个合适的 Logger。
异常:如果传递的名称为空,此方法将抛出NullPointerException 。
下面的程序说明了 getLogger(Java.lang.String) 方法:
方案一:// Java program to demonstrate // Logger.getLogger(java.lang.String) method import java.util.logging.*; public class GFG { public static void main(String[] args) { // Create a Logger with class name GFG Logger logger = Logger.getLogger(GFG.class.getName()); // Call info method logger.info("Message 1"); logger.info("Message 2"); } }
控制台上打印的输出如下所示。
输出:方案二:
// Java program to demonstrate Exception thrown by // Logger.getLogger(java.lang.String) method import java.util.logging.*; public class GFG { public static void main(String[] args) { String LoggerName = null; // Create a Logger with a null value try { Logger logger = Logger.getLogger(LoggerName); } catch (NullPointerException e) { System.out.println("Exception Thrown: " + e); } } }
控制台上打印的输出如下所示。
输出: - getLogger(String name, String resourceBundleName) :此方法用于查找或创建具有传递名称的记录器。如果已经使用给定名称创建了记录器,则返回它。否则,将创建一个新的记录器。如果具有传递名称的 Logger 已经存在并且没有本地化资源包,那么给定的资源包名称将用作此记录器的本地化资源包。如果命名的 Logger 具有不同的资源包名称,则此方法会引发 IllegalArgumentException。
句法:
public static Logger getLogger(String name, String resourceBundleName)
参数:此方法接受两个不同的参数:
- name :这是记录器的名称。此名称应为点分隔名称,通常应基于子系统的包名或类名,例如Java .net 或 javax.swing
- resourceBundleName:这是用于本地化此记录器消息的 ResourceBundle 的名称。
返回值:该方法返回一个合适的 Logger。
异常:此方法将引发以下异常:
- NullPointerException:如果传递的名称为空。
- MissingResourceException:如果 resourceBundleName 为非 null 且找不到对应的资源。
- IllegalArgumentException:如果 Logger 已经存在并使用不同的资源包名称;或者如果 resourceBundleName 为 null 但命名记录器有一个资源包集。
下面的程序说明了 getLogger(String name, String resourceBundleName) 方法:
方案一:
// Java program to demonstrate // getLogger(String name, String resourceBundleName) method import java.util.ResourceBundle; import java.util.logging.*; public class GFG { public static void main(String[] args) { // Create ResourceBundle using getBundle // myResource is a properties file ResourceBundle bundle = ResourceBundle .getBundle("resourceBundle"); // Create a Logger // with GFG.class and resourceBundle Logger logger = Logger.getLogger( GFG.class.getName(), bundle.getBaseBundleName()); // Log the info logger.info("Message 1 for logger"); } }
对于上面的程序,有一个属性文件名为resourceBundle。我们必须在类旁边添加这个文件来执行程序。
输出:
参考:
- https://docs.oracle.com/javase/10/docs/api/java Java .lang.String, Java Java )
- Java Java )