java日志——修改日志管理器配置+日志本地化

【0】README

0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java日志——修改日志管理器配置+日志本地化 的相关知识;


【1】修改日志管理器配置

1.1)可以通过编辑配置文件来修改日志系统的各种属性。 在默认情况下, 配置文件存在于:
e/lib/logging.properties

  • 1.1.1)要想使用另一个配置文件, 就要将 java.util.logging.config.file 特性设置为配置文件的存储位置, 并用下列命令启动应用程序:
    java -Djava.util.logging.config.file=configFile MainClass

Warning)在main方法中调用 System.setProperty(“java.util.logging.config.file”, file) 没有任何影响, 其原因是 日志管理器 在VM 启动过程中被初始化, 它会在main之前执行;
1.2)要想修改默认的日志记录级别, 就需要要编辑配置文件, 并修改命令行
.level=INFO

  • 1.2.1)可以通过 添加 以下内容来指定自己的日志记录级别
    com.company.myapp.level=FINE (也就是说, 在日志记录名后面添加后缀 .level)
  • 1.2.2)日志记录并不将消息发送到控制台上,这是处理器的任务;如果要想在控制台上看到 FINE 级别的消息, 就需要进行一下设置:
    java.util.loggeing.ConsoleHandler.level=FINE

Warning)

  • W1)在日志管理器配置的属性设置不是系统属性, 因此, 用 -Dcom.mycompany.myapp.level=FINE 启动应用程序不会对日志记录产生任何影响;

1.3)日志属性文件由 java.util.logging.LogManager 类处理:

  • 1.3.1)可以通过将 java.util.logging.manager 系统属性设置为某个子类的名字 来 指定一个不同的日志管理器;
  • 1.3.2)在保存标准日志管理器的同时, 还可以从 日志属性文件跳过初始化;
  • 1.3.3)还有一种方式, 是将 java.util.logging.config.class 系统属性设置为某个类名, 该类在通过其他方式设定日志管理器属性;

Attention) 在运行的程序中, 使用 jconsole 程序 也可以 改变日志记录 的级别;


【2】本地化

2.1)本地化的应用程序包含资源包中的本地特定信息。 资源包由各个地区(如美国或德国)的映射集合组成;

  • 2.1.1)一个程序可以包含多个资源包: 一个用于菜单, 其他用于日志消息;
  • 2.1.2)要想将映射添加到一个资源包中, 需要为每个地区创建一个文件。英文消息映射位于 com/mycompany/logmes_en.properties, 德文消息位于 com/mycompany/logmes_de.properties文件中;
  • 2.1.3)可以将这些文件与应用程序的类文件放在一起, 以便 ResourceBundle 类自动地对它们进行定位。 这些文件都是 纯文本文件, 组成如下:
readingFile=Achtung !
renamingFile=Datei wird umbenannt
.....

2.2)在请求日志记录器时, 可以指定一个资源包:

Logger logger = Logger.getLogger(loggerName, "com.mycompany.logmes");
  • 2.2.1)然后, 为日志消息指定资源包的关键字, 而不是实际的日志消息字符串;
    logger.info(“readingFile”);
  • 2.2.2)通常需要 在 本地化的消息中添加一些参数, 因此,消息应该包括占位符{0}, {1} 等。 例如, 要想在日志消息中包含文件名, 就应该使用下列方式包括占位符:
Reading file {0}.
Achutng! Datei {0} wird eingelesen.
  • 2.2.3)然后, 通过调用下面的一个方法向占位符传递具体的值:
logger.log(Level.INFO, "readingFile", fileName);
logger.log(Level.INFO, "renamingFile", new Object[]{oldname, newname});

这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jpa embedded_JPA @Embeddable和@Embedded

jpa embedded介绍: 作为一个面向对象的开发人员,我们希望避免使用带有大量不相关字段的大型类。 因此,我们可能经常感到有必要使用多个对象来表示JPA实体。 在本快速教程中,我们将学习如何使用JPA或Hibernate中的Embedded和Embed…

jdk内置线程实例_EA问题的JDK14实例

jdk内置线程实例Tagir Valeev最近发布了一条有关即将发布的Java JDK14版本的预览功能的推文: #Java14模式匹配将名称隐藏带入了更高的疯狂程度。 在这里,我为FLAG字段添加或删除了final修饰符,该修饰符仅在不可达的if分支中访问。…

intro to Apache Log4j 2

【0】README 0.1)本文作为 原文(http://logging.apache.org/log4j/2.x/)的译文,仅作参考, 旨在了解 Log4j 2 的相关知识 ; 0.2) Apache Log4j 2 是Log4j的升级版,并对其前任Log4j …

php注册页面模板,选项卡式WordPress登陆注册模板

上次说到不用插件也可以修改WordPress登陆注册界面,不过只是简单的修改了CSS,缺少很多元素,例如header、导航、footer等,为了增加这些元素,我们可以采取另一种方式,将WordPress登陆注册界面做成page模板&am…

内核堆栈 用户堆栈_弹性堆栈介绍

内核堆栈 用户堆栈当您运行对公司至关重要的软件时,您将无法拥有仅用于分析一段时间前发生的事情的日志,让客户端告诉您您的应用程序已损坏,而您甚至不知道发生了什么是真实的问题。 解决该问题的方法之一是使用监视和日志记录。 大多数应用…

php 字符串 中文,php 中文字符串截取乱码

PHP截取字符串如果是英文直接用substr就可以了,但对于中文字符,用substring可能会导致乱码,那么将如何解决呢?1、通过函数mb_substr实现说明:mb_substr($str, $start, $length, $encoding);通过该函数即可,但需要加载p…

java 调试技巧

【0】README 0.1) 本文描述源代码均 转自 core java volume 1, 旨在理解 java 调试技巧 的相关知识; 【1】调试技巧相关 1.1)可以用下面的方法打印或记录任意变量的值: System.out.println("x " x); 或 …

jdk 版本和内部版本对应_JDK 14 Rampdown:内部版本27

jdk 版本和内部版本对应马克 雷因霍尔德( Mark Reinhold)最近的帖子“ JDK 14现在处于Rampdown第一阶段 ”宣布“我们现在处于Rampdown第一阶段”,并且“整体功能已冻结”。 JDK 14 Early Access Build #27(2019/12/12…

对一个java源文件进行正确编译,给定如下一个Java源文件Child.java,编译并运行Child.java,以下结果正确的是()...

总成化无本优部问决企题业内法解,给定流配特别题是物送问。而他再告真的不是己这却一诉自,个源文译并运行下某人重病的家得了假如人忽然间,的应对策略有他使用到。结果感是个人自我指一效能对:。哲学的规揭示律一般,管…

异常java.lang.Thread.dumpStack(Unknown Source)

转自: http://www.blogjava.net/landon/archive/2011/02/27/345265.html 昨天在公司写了一段代码,很简单,就是测试Thread的dumpStack方法的使用。 因为Thread的dumpStack方法不是很常用,但它对于如果想看看谁在运行时调用方法还是…

java集合框架——接口图+类图+遗留类图

【0】README 0.1)绝对的干货,理清 java集合框架中类和接口的层次关系;

构建maven项目插件_如何构建一个Maven插件

构建maven项目插件使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护。 今天尝试Okta。 由于其插件生态系统的普及,Apache Maven仍然是Java领域最受欢迎的构建工具。 很容易找到…

shu函数php,【函数分享】每日PHP函数分享(2021-3-3)

array_intersect_assoc — 带索引检查计算数组的交集说明array_intersect_assoc ( array $array1 , array $array2 , array $... ? ) : arrayarray_intersect_assoc() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意和 arra…

spring 注释_Spring@主要注释

spring 注释介绍: 当存在多个相同类型的bean时,使用Spring Primary批注为标记的bean提供更高的优先级。 默认情况下,Spring按类型自动连线。 因此,当Spring尝试自动装配并且有多个相同类型的bean时,我们将得到一个NoU…

java集合——集合接口+迭代器接口

【0】README 0.1) 本文描述转自 core java volume 1, 源代码 diy 的, 旨在理解 java集合框架——集合接口迭代器接口 的相关知识; 0.2) for full source code , please visit https://github.com/pacosonTang/core-j…

snmp在php中的使用,在php中转换python代码以计算snmpvlan掩码的最佳方法

我有一些python代码,我想在一个100%的php代码中使用。你知道我怎么转换代码吗???我在转换代码时遇到问题,尤其是部分get bit和set bit。在位掩码通过snmp从交换机中读取,掩码表示交换机端口位于定义的vlan中…

java ssl发送邮件_通过SSL发送的Java邮件

java ssl发送邮件抽象 本博客的目的是演示如何使用Java Mail通过具有SSL连接的SMTP服务器发送电子邮件。 免责声明 这篇文章仅供参考。 在使用所提供的任何信息之前,请认真思考。 从中学到东西,但最终自己做出决定,风险自负。 要求 我使用以…

java集合—— 链表(java中的所有链表都是双向链表)

【0】README 0.1) 本文描述转自 core java volume 1, 源代码 diy 的, 旨在理解 java集合—— 链表(java中的所有链表都是双向链表) 的相关知识; 0.2) for full source code , please visit ht…

使用matlab内存不足,Matlab内存不足问题(Out of memory)

今天遇到过这个错误:??? Error using > horzcatOut of memory. Type HELP MEMORY for your options.做算法仿真时,矩阵太大,超出内存了。当信号矩阵缩到可以满足内存时,仿真也没意义了,只有找解决办法了。找到一…

java 邮件 tls_通过TLS发送的Java邮件

java 邮件 tls抽象 本博客的目的是演示如何使用Java Mail通过具有TLS连接的SMTP服务器发送电子邮件。 免责声明 这篇文章仅供参考。 在使用所提供的任何信息之前,请认真思考。 从中学到东西,但最终自己做出决定,风险自负。 要求 我使用以下…