在使用 java 日志记录 API 时,如何禁用默认控制台处理程序?

2023-12-01

您好,我正在尝试在我的应用程序中实现 java 日志记录。我想使用两个处理程序。 文件处理程序和我自己的控制台处理程序。我的两个处理程序都工作得很好。我的日志记录发送到文件和控制台。 我的日志记录也被发送到默认的控制台处理程序,这是我不想要的。如果您运行我的代码,您将看到额外的两行发送到控制台。我不想使用默认的控制台处理程序。有谁知道如何禁用默认控制台处理程序。 我只想使用我创建的两个处理程序。

Handler fh = new FileHandler("test.txt");
fh.setFormatter(formatter);
logger.addHandler(fh);

Handler ch = new ConsoleHandler();
ch.setFormatter(formatter);
logger.addHandler(ch);

import java.util.Date;
import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;
import java.util.logging.Logger;

public class LoggingExample {
    private static Logger logger = Logger.getLogger("test");

    static {
        try {
            logger.setLevel(Level.INFO);

            Formatter formatter = new Formatter() {

                @Override
                public String format(LogRecord arg0) {
                    StringBuilder b = new StringBuilder();
                    b.append(new Date());
                    b.append(" ");
                    b.append(arg0.getSourceClassName());
                    b.append(" ");
                    b.append(arg0.getSourceMethodName());
                    b.append(" ");
                    b.append(arg0.getLevel());
                    b.append(" ");
                    b.append(arg0.getMessage());
                    b.append(System.getProperty("line.separator"));
                    return b.toString();
                }

            };

            Handler fh = new FileHandler("test.txt");
            fh.setFormatter(formatter);
            logger.addHandler(fh);

            Handler ch = new ConsoleHandler();
            ch.setFormatter(formatter);
            logger.addHandler(ch);

            LogManager lm = LogManager.getLogManager();
            lm.addLogger(logger);
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        logger.info("why does my test application use the standard console logger ?\n" + " I want only my console handler (Handler ch)\n " + "how can i turn the standard logger to the console off. ??");
    }
}

Just do

LogManager.getLogManager().reset();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在使用 java 日志记录 API 时,如何禁用默认控制台处理程序? 的相关文章

  • 如果您不在 Java 中进行克隆,那么您会做什么以及如何称呼它?

    有没有人对 Java 中的复制构造函数 工厂方法等有任何建议或已建立的最佳实践和命名约定 特别是 假设我有一堂课Thing我想要一个返回新值的方法Thing与 a 具有相同的值Thing传入 如果是实例方法 则作为实例 您会将其作为构造函数
  • Android:java.lang.OutOfMemoryError:

    我在 Android 上开发了一个使用大量图像的应用程序 可绘制文件夹中有很多图像 比如说超过 100 张 我正在开发图像动画应用程序 我使用 imageview 来显示 GIF 图像 我使用了将 gif 图像分割成多个 PNG 格式图像的
  • Android Toast 消息不起作用

    我正在通过 Andengine 为 Android 开发游戏 我有 MainActivity 类和 GameScene 类 我在 GameActivity 中使用 Toast 消息 它正在发挥作用 Toast makeText this H
  • 在 String 值之后打印 int 值

    我有以下示例代码 int pay 80 int bonus 65 System out println pay bonus bonus pay 有人可以向我解释一下为什么我得到以下输出 145 6580 您的代码正在从左到右解释表达式 pa
  • 类型已知,但方法指的是缺失类型

    我对 java 和 Eclipse 不太有经验 但遇到以下问题 我正在写类似的东西 Point3D myPoint myClass myMethod arg 我收到错误 方法 myMethod myType arg 引用缺失的类型 Poin
  • 是否可以使用 Java 读写 Parquet,而不依赖 Hadoop 和 HDFS?

    我一直在寻找这个问题的解决方案 在我看来 如果不引入对 HDFS 和 Hadoop 的依赖 就无法在 Java 程序中嵌入读写 Parquet 格式 它是否正确 我想在 Hadoop 集群之外的客户端计算机上进行读写 我开始对 Apache
  • 如何从 Java 访问 Windows 设备管理器中的信息?

    我有一个串行 USB 设备 并且其中多个设备可以连接到计算机 我需要查询和检索设备连接到的 COM 端口列表 在 Windows 设备管理器中 您可以获得当前连接的设备的 COM 端口 友好名称 该列表是动态的 从注册表中读取不工作 htt
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • FileObserver 不适用于 Android 6.0 Marshmallow (API 23) 中的外部存储

    我有一个应用程序可以观察外部存储上的公共目录FileObserver 它运行良好Lollipop设备 我想添加对Marshmallow 所以我用它设置了一台 Nexus 9 平板电脑 在 Marshmallow 设备上 它失败 在 Loll
  • 在拇指上方显示修改后的 JSlider 值

    有没有一种简单的方法可以在使用某些 外观和感觉 的同时更改 JSlider 上方标签中显示的值 为了清楚起见 我正在谈论这个值 具体来说 我想显示除以 1000 的值而不是值本身 我知道如果我显示它们 我可以为刻度设置标签 但用户将不得不猜
  • 如何让“循环”泛型在 Java 中工作?

    我在编译以下涉及一些泛型的代码时遇到错误 public abstract class State
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • 接口是否像对象一样对待?

    为什么下面的代码可以工作 interface I class A implements I public String toString return in a class B extends A public String toStrin
  • JPA Web 应用程序管理策略

    我们目前正在开发一个 J2EE Web 应用程序 使用 JPA 作为我们的数据访问层 我们目前正在研究几种不同的策略来在我们的应用程序中利用缓存 Create an EntityManager per request 在请求范围内获取缓存
  • 获取 Future 对象的进度的能力

    参考 java util concurrent 包和 Future 接口 我注意到 除非我弄错了 只有 SwingWorker 实现类才能启动冗长的任务并能够查询进度 这就引出了以下问题 有没有办法在非 GUI 非 Swing 应用程序 映
  • java.lang.UnsatisfiedLinkError - android studio gradle 中的 NDK?

    文件夹结构 app main java jni Android mk Application mk hello jni c res 在构建 gradle apply plugin com android application androi
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • 如何在J2ME中获取数字的幂[重复]

    这个问题在这里已经有答案了 可能的重复 J2ME power double double 数学函数实现 https stackoverflow com questions 2076913 j2me powerdouble double ma
  • Android ClassNotFoundException:在路径上找不到类

    10 22 15 29 40 897 E AndroidRuntime 2561 FATAL EXCEPTION main 10 22 15 29 40 897 E AndroidRuntime 2561 java lang Runtime

随机推荐

  • WebRTC视频会议(多对多)

    我即将使用 webRTC socket io node js 构建一个视频会议系统 所以我已经阅读了 Simon Pietro Romano 的这本书作为起点 与 webRTC 的实时通信 我已经读完了它 我要运行该系统通过 100 Mbp
  • 嵌入式 Lua - 流氓脚本超时(例如无限循环) - 有人举个例子吗?

    我已将 Lua 嵌入到 C 应用程序中 我需要能够杀死那些霸占资源的流氓 即写得很糟糕的脚本 我知道我无法满足导致脚本无限期运行的每种情况 所以现在我只关注简单的 Lua 方面 即脚本方面的问题 我也知道这个问题已经在这里被问过 以各种形式
  • 在 Android 设备上运行时卡在 Meteor 示例“todos”加载屏幕上

    Issue s 当我尝试在 Android 设备上运行 Meteor todos 示例时 它永远停留在加载屏幕上 从下面的屏幕截图中可以看出 显示了以下错误消息 Failed to load resource net ERR ADDRESS
  • 将复杂的Json数据导入到hive中

    需要一点勺子喂养 如何将复杂的 json 导入到 hive 中 Json 文件格式为 some headers dump item id item 1 item id item 2 Hive 具有以下给出的字段dump Json 文件大小目
  • 处理大型 xml 文件

    我有一个大的 xml 文件 其中包含许多子元素 我希望能够运行一些 xpath 查询 我尝试在java中使用vtd xml 但有时会出现内存不足错误 因为xml太大而无法放入内存 是否有其他方法来处理如此大的 xml try http co
  • Javascript - [为什么?]将变量分配给对象[重复]

    这个问题在这里已经有答案了 为什么当我将变量分配给对象并更改该变量时 它也会更改对象 例如 c 26 a b c a 1 a 27 b 26 c 26 but z x y z x ab 5 x Object ab 5 y Object ab
  • 无论如何,有没有办法以指数方式快速增加?

    我正在尝试编写一个 for 循环 其中我必须以指数方式递增 我在用stride功能 但它不会工作 这是 C 代码 我正在尝试编写一个快速版本 for int m 1 m lt high low m 2 m 你能帮我用快速版本编写这段代码吗
  • 1 << 31 产生错误,“‘<<’表达式的结果未定义”

    如果我在 32 位平台上将值声明为 int 类型并执行以下操作 int32 t mask mask 1 lt lt 31 produces 2147483648 or 0x80000000 有人可以帮助我理解为什么上面的行会产生警告 The
  • 在 C++ 代码中使用 C# dll

    我需要整合这个C dll在我的 C 代码中 我想从 dll 调用一些用 C 编写的函数 其余代码用 C 编写 最简单 最快的方法是什么 该程序仅在 Windows 上执行 从非托管代码调用 NET DLL 基本上有两种情况 NET DLL
  • 添加新视图时运行所选代码生成器时出错

    我正在开发一个 asp net core MVC 项目 我需要为控制器的方法添加一个视图 为此 我右键单击所考虑的方法的主体 然后选择 添加视图 但系统显示错误 运行所选代码生成器时出错 包恢复失败 回滚包更改 MyProject 如果有人
  • Sql Server sp_send_dbmail 从本地临时表发送查询结果

    尝试使用 sp send dbmail 从存储过程输出结果 感谢 Joe Stefanneli 提供解决方案 当使用全局临时表变量 Summary 时 它可以工作 当使用本地临时表变量 Summary 时 它会失败 据我所知 全局变量选项在
  • 构建多页面表单以在数据库中创建和编辑模型的最佳方法是什么?

    我对 Rails 还很陌生 在 Rails 中设计 构造多页表单的最佳方法是什么 我希望表单在提交表单的第一页时立即在数据库中创建一条新记录 并为表单的每个后续页面更新数据库中的该记录 我希望在提交第一页后立即创建记录的原因是 这样可以有用
  • 为什么我的会话变量在构建控制器时不可用?

    使用 ASP NET MVC 尝试从构造函数获取存储在 Session objectName 上的信息时 我发现 Session 尚未设置 但一旦构造了控制器 Session 就包含正确的信息 public class ABCControl
  • 可视化两组数据之间的关联

    其中每个数据点都有 A 和 B 的配对 并且 A 中有多个条目 B 中有多个整体 即 多个综合症和多个诊断 尽管对于每个数据点来说 都有一个综合症 诊断对 非常感谢示例 建议或想法 数据是这样的 我想查看 A 和 B 值之间的联系 有多少
  • 如何允许下载从 AJAX 作为二进制数据返回的文件

    我的问题是 我首先向客户端发送 PDF 进行下载 然后我需要检查我的数据库中是否存在某些数据 然后根据该检查 我需要显示问题 如果用户想要下载我生成的另一个 PDF My Code Here I just make dialog for q
  • `... | 是什么意思?类型类声明中的 b -> c` 是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 是什么for 在 Haskell 类定义中 以下内容 来自Data HList HListPrelude 我该如何解释 l l gt l part class HAppend l l l l l gt
  • 如何使用 selenium python 抓取网站中的 ::before 元素

    我正在尝试使用硒从该网站上抓取电话号码 我发现该类是 tel ttel 但是当我尝试通过 find element by xpath 抓取网站时 我得到一个空字符串 My code wd webdriver Chrome chrome pa
  • Android 网页视图 POST

    我试图完成一些非常简单的事情 但我没有找到关于这方面的好的文档 我有一个 webView 我需要在其中加载一个需要 POST 数据的页面 看起来像一个简单的过程 但我找不到在 webView 中显示结果的方法 该过程应该很简单 查询 带有
  • 有谁的 iOS 应用程序因使用设备 UDID 而被 Apple 拒绝吗?

    我听到一些传言称苹果正在拒绝使用 iOS5 已弃用方法的应用程序 UIDevice uniqueIdentifier 任何人都可以确认他们的应用程序因此被拒绝吗 我知道使用这种已弃用的方法的替代方法 但我们的一位客户要求我们使用我们知道使用
  • 在使用 java 日志记录 API 时,如何禁用默认控制台处理程序?

    您好 我正在尝试在我的应用程序中实现 java 日志记录 我想使用两个处理程序 文件处理程序和我自己的控制台处理程序 我的两个处理程序都工作得很好 我的日志记录发送到文件和控制台 我的日志记录也被发送到默认的控制台处理程序 这是我不想要的