java不通过配置文件初始化logger示例

初始化Logger是Java程序中常见的操作之一,一般是用配置文件的方式来实现。但是,有时候我们不想使用配置文件的方式来初始化Logger,而是想通过代码来进行初始化。下面是两条示例说明来详细讲解如何不通过配置文件初始化Logger。

示例一:使用代码初始化rootLogger

rootLogger是Logger hierarchy中的最高级别的Logger,我们可以使用如下代码来初始化rootLogger:

import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Test {
    private static final Logger logger = Logger.getLogger("");

    public static void main(String[] args) {
        logger.setLevel(Level.FINEST);
        ConsoleHandler handler = new ConsoleHandler();
        handler.setLevel(Level.FINEST);
        logger.addHandler(handler);
        logger.info("Initialize rootLogger by code.");
    }
}

通过上面的代码,我们首先获取Logger对象,然后设置Logger的级别为FINEST。接着,我们创建了一个ConsoleHandler,并将其级别也设置为FINEST。最后,我们将ConsoleHandler添加到Logger中,这样ConsoleHandler就成为了Logger的Handler之一。

运行程序后,我们可以看到在控制台上输出信息“Initialize rootLogger by code.”,这个信息表明我们已经成功用代码初始化了rootLogger。

示例二:使用代码初始化特定包下的Logger

如果我们只想初始化特定包下的Logger,可以使用如下代码:

import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Test {
    private static final Logger logger = Logger.getLogger(Test.class.getPackage().getName());

    public static void main(String[] args) {
        logger.setLevel(Level.FINEST);
        ConsoleHandler handler = new ConsoleHandler();
        handler.setLevel(Level.FINEST);
        logger.addHandler(handler);
        logger.info("Initialize logger by code in package " + Test.class.getPackage().getName());
    }
}

在这个例子中,我们首先获取了Test类所在包的名称(即包的全限定名),然后获取其对应的Logger对象。接着,我们将Logger的级别和Handler设置为同上例子中的操作,最后在控制台上输出初始化信息。

运行程序后,我们可以看到在控制台上输出信息“Initialize logger by code in package com.example”,这个信息表明我们已经成功用代码初始化了com.example包下的Logger。

以上是两个通过代码实现Logger初始化的示例,我们可以看出,使用代码初始化Logger相比于使用配置文件初始化Logger,有更灵活、更直观的掌控方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java不通过配置文件初始化logger示例 - Python技术站

(0)
上一篇 2023年6月20日
下一篇 2023年6月20日

相关文章

  • PHP静态成员变量和非静态成员变量详解

    PHP静态成员变量和非静态成员变量详解 在PHP中,我们可以使用静态成员变量和非静态成员变量来存储和访问对象的数据。这两种类型的成员变量在使用和作用上有一些区别。 非静态成员变量 非静态成员变量是属于类的实例的,每个对象都有自己的一份非静态成员变量。它们在对象创建时被初始化,并且可以通过对象来访问和修改。 下面是一个示例,演示了如何定义和使用非静态成员变量:…

    other 2023年7月29日
    00
  • 教你如何通过PL/SQL创建序列和触发器实现表自增字段

    下面我详细讲解一下“教你如何通过PL/SQL创建序列和触发器实现表自增字段”的完整攻略。 创建序列 序列是在 Oracle 数据库中生成一系列唯一标识号的一种方法。它通常用于创建自增字段。在 PL/SQL 中,可以通过以下语句创建一个序列: CREATE SEQUENCE sequence_name START WITH 1 INCREMENT BY 1 M…

    other 2023年6月25日
    00
  • @autowired(required=false)

    @Autowired(required=false) 在Spring中,@Autowired注解通常用于进行依赖注入。其中,required属性用于指定是否必须注入该字段或方法。如果required为true(默认值),则Spring容器在注入时如果发现该组件不存在,则会抛出异常。如果required为false,则Spring容器将不会抛出异常,而是将该字…

    其他 2023年3月28日
    00
  • Android浅析viewBinding和DataBinding

    Android浅析viewBinding和DataBinding攻略 介绍 在Android开发中,viewBinding和DataBinding是两种常用的数据绑定技术。它们可以简化UI组件与数据之间的交互,提高开发效率。本攻略将详细介绍这两种技术的使用方法和区别,并提供示例说明。 viewBinding viewBinding是Android官方在And…

    other 2023年8月23日
    00
  • 红米Note12Pro+开发者在哪?红米Note12Pro+查看开发者方法

    红米Note12Pro+开发者 红米Note12Pro+查看开发者方法 如果您想查看红米Note12Pro+的开发者信息,则可以按照以下步骤进行操作: 点击手机主屏幕上的“设置”图标。 在“设置”菜单中,向下滚动并找到“关于手机”选项。 点击“关于手机”打开该选项,并找到“MIUI版本”。 连续点击“MIUI版本”,即可进入开发者模式。 红米Note12Pr…

    other 2023年6月27日
    00
  • 详解webpack的配置文件entry与output

    让我详细讲解“详解webpack的配置文件entry与output”的完整攻略。 概述 Webpack 是一个静态模块打包器,可以将多个模块转换为浏览器可识别的 JavaScript、CSS、图片等文件。entry 和 output 是 Webpack 配置文件中的两个重要选项,entry 用于指定 Webpack 并列入打包的入口模块,output 用于指…

    other 2023年6月25日
    00
  • Android 1.5 1.6 2.0 2.1 2.2 的区别详解

    Android版本的区别详解 Android是一个不断发展和更新的操作系统,每个版本都带来了新的功能和改进。下面是Android 1.5、1.6、2.0、2.1和2.2版本之间的主要区别的详细解释: Android 1.5(Cupcake) 发布日期:2009年4月 主要特点: 引入了虚拟键盘,使得设备可以在没有物理键盘的情况下进行输入。 支持了第三方应用程…

    other 2023年10月14日
    00
  • 关于maven:播放框架2.3.8 找不到org.apache.poi依赖项

    以下是关于“关于maven:播放框架2.3.8找不到org.apache.poi依赖项”的完整攻略,包含两个示例。 关于Maven: 播放框架2.3.8找不到org.apache.poi依赖项 在使用Maven构建Java项目时,有时会出现找不到依赖项的情况。以下是关于如何解决播放框架2.3.8找不到org.apache.poi依赖项的详细攻略。 1. 检查…

    other 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部