Java中的 Logger getAnonymousLogger() 方法及示例
Logger类的getAnonymousLogger()方法用于创建匿名 Logger。有两种类型的 getAnonymousLogger() 方法,具体取决于传递的参数。
- getAnonymousLogger() :此方法用于创建匿名Logger。这个新创建的匿名 Logger 没有在 LogManager 命名空间中注册,也没有对 logger 的更新进行访问检查。所以问题是如果没有访问检查,为什么我们需要这个记录器,因为工厂方法主要用于小程序。因为生成的 Logger 是匿名的,所以它可以由创建类保持私有。这消除了对正常安全检查的需要,这反过来又允许不受信任的小程序代码更新记录器的控制状态。例如,applet 可以在匿名 Logger 上执行 setLevel 或 addHandler。
此记录器配置为将根记录器(“”)作为其父级。它从根记录器继承其有效级别和处理程序。通过 setParent 方法更改其父级仍需要该方法指定的安全权限。
句法:
public static Logger getAnonymousLogger()
参数:此方法不接受任何内容
返回值:该方法返回一个新创建的私有 Logger 。
下面的程序说明了 getAnonymousLogger(Java.lang.String) 方法:
方案一:// Java program to demonstrate // Logger.getAnonymousLogger() method import java.util.logging.*; public class GFG { public static void main(String[] args) { // Create a Logger with class name GFG Logger logger = Logger.getAnonymousLogger(); // Call info method logger.info("Message 1"); logger.info("Message 2"); } }
控制台上打印的输出如下所示。
输出:方案二:
// Java program to demonstrate Exception thrown by // Logger.getAnonymousLogger(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 .getAnonymousLogger(LoggerName); } catch (NullPointerException e) { System.out.println("Exception Thrown :" + e); } } }
控制台上打印的输出如下所示。
输出: - getAnonymousLogger(String resourceBundleName) :此方法用于创建匿名 Logger。这个新创建的匿名 Logger 没有在 LogManager 命名空间中注册,也没有对 logger 的更新进行访问检查。此 Logger 已将 ResourceBundle 作为参数传递,用于本地化此 logger 的消息。
句法:
public static Logger getAnonymousLogger(String resourceBundleName)
参数:此方法接受单个参数resourceBundleName ,它是用于本地化此记录器消息的 ResourceBundle 的名称。
返回值:该方法返回一个合适的 Logger。
异常:此方法将抛出MissingResourceException:如果 resourceBundleName 为非空且找不到对应的资源。
下面的程序说明了 getAnonymousLogger(String resourceBundleName) 方法:
方案一:
// Java program to demonstrate // getAnonymousLogger(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 resourceBundle Logger logger = Logger .getAnonymousLogger( bundle.getBaseBundleName()); // Log the info logger.info("Message 1 for logger"); logger.info("Message 1 for logger"); } }
对于上面的程序,有一个属性文件名为resourceBundle。我们必须在类旁边添加这个文件来执行程序。
参考:
- https://docs.oracle.com/javase/10/docs/api/java Java()
- https://docs.oracle.com/javase/10/docs/api/java Java Java)