练习java文档java.util.logging.Logger

java.util.logging.Logger
阅读文档的疑问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
变量
global 已经弃用了 说初始化的时候容易出现死锁,但是为什么会出现死锁?
GLOBAL_LOGGER_NAME println()后是global
构造器
Logger(String , String ) protected方法,无法使用
方法
addHandler() 不知道怎么导向如下的地方在这里插入图片描述
config() 一个未知的级别,和ALL、FINER应该是同一类,因为输出到xml中是长这样的。
在这里插入图片描述
entering(String class, String method) 打印出来是这样的
在这里插入图片描述
entering()
在这里插入图片描述
fine()
finer()
finest()
getAnonymousLogger() 其中一个resourceBundleName,以logMess_zh_CN为例子,就是其中的logMess,也可以是全名logMess_zh_CN
getFilter() 不理解 , 而且我没有设置Filter,返回的是null
getGlobal() 不知道为什么需要一个全局的记录器 默认没有Handlers,没有Level
getHandlers()
getLevel()
getLogger()
getName()
getParent() 不太理解这个方法。。返回的父级Logger是什么意思 父类是一个LogManager的内部类RootLogger ,Level是INFO在这里插入图片描述
getResourceBundle()
getResourceBundleName()
== getUseParentHandlers() 父级的Handler是一个ConsoleHandler 难怪能够用子级输出到控制台,原来是会输出到父级的ConsoleHandler==
info()
isLoggable()
log()
logp() 这个方法名字中的p是什么意思?是precise准确的意思
在这里插入图片描述

logrb()是什么意思?RecourceBundle?猜测是,果然是
在这里插入图片描述

removeHandler()
setFilter() 不知道怎么用,也不知道是干嘛用的。
setLevel()
setParent() 不知道设置父级的用处是什么:1、如果本身的Level为null,则会使用父级的Level;2、与LogRecord有关;3、子级的日志也会输出到父级的Handler们中;4、如果没有ResourceBundle的话,会继承父类的ResourceBundle,但是getResourceBundleName()或者getResourceBundle依旧返回null
setResourceBundle()
setUseParentHandler()
severe()
throwing() 不知道是什么等级的日志
warning()

import java.util.logging.*;
import java.io.*;
import java.util.*;
public class Test
{
	public static void main(String[] args) throws IOException
	{
		System.out.println(Logger.GLOBAL_LOGGER_NAME);
		Logger logger = Logger.getLogger("abc");
		logger.addHandler(new FileHandler("f.xml"));
		//写一下,文档中的练习
		logger.setLevel(Level.ALL);
		logger.log(Level.FINER,"第一条信息"); //会输出到f.xml
		logger.log(Level.ALL,"第二条信息"); //不会输出到f.xml
		
		logger.log(Level.ALL,DiagnosisMessages.systemHealthStatus());
		logger.log(Level.ALL,DiagnosisMessages::systemHealthStatus);
		logger.log(Level.FINER,DiagnosisMessages.systemHealthStatus());
		logger.log(Level.FINER,DiagnosisMessages.systemHealthStatus());

		logger.config("我是config消息");
		logger.config(() -> "config第二条消息");

		logger.entering("a","b");
		logger.entering("a","b","这是enter消息");
		logger.entering("a","b",new Object[]{"美女1","美女2","可爱的美女3"});
		logger.exiting("a","b");
		logger.exiting("a","b","777");

		logger.fine("abc");
		logger.fine(Supp::out);
		logger.finer("finer");
		logger.finer(Supp::out);
		logger.finest("finest");
		logger.finest(Supp::out);
		
		ResourceBundle bundle = ResourceBundle.getBundle("logMess");
		Logger.getAnonymousLogger().log(Level.OFF,"这是匿名的");
		Logger.getAnonymousLogger("logMess").log(Level.OFF,"debug");

		Filter filter = logger.getFilter();
		System.out.println(filter);
		//System.out.println(filter.isLoggable(new LogRecord(Level.ALL,"我是LogRecord")));
		System.out.println(Logger.getGlobal());
		Logger.getGlobal().addHandler(new FileHandler("e.xml"));
		logger.addHandler(new FileHandler("e.xml"));
		Logger.getGlobal().log(Level.OFF,"这是global记录器");
		System.out.println(Arrays.toString(logger.getHandlers()));
		System.out.println(Arrays.toString(Logger.getGlobal().getHandlers()));

		System.out.println(logger.getLevel());
		System.out.println(Logger.getGlobal().getLevel());
		
		Logger logger2 = Logger.getLogger("a55");
		Logger logger3 = Logger.getLogger("a88","logMess");
		logger2.log(Level.OFF,"debug");
		logger3.log(Level.OFF,"debug");

		System.out.println(logger.getName());	
		System.out.println(logger.getParent().getLevel());
		System.out.println(logger.getParent());
		System.out.println(logger.getLevel());

		System.out.println(logger2.getResourceBundle());
		System.out.println(logger3.getResourceBundle());
		System.out.println(logger2.getResourceBundleName());
		System.out.println(logger3.getResourceBundleName());
		System.out.println(Arrays.toString(logger.getParent().getHandlers()));
		System.out.println(logger.getUseParentHandlers());

		Logger logger4 = Logger.getLogger("8673");
		logger4.addHandler(new ConsoleHandler());
		logger4.log(Level.OFF,"这里是logger4"); //不知道怎么用这个ConsoleHandler,才能控制Level
		logger.info("abc");
		logger.info(Supp::out);
		System.out.println(logger.isLoggable(Level.ALL));
		logger.setLevel(Level.INFO);
		System.out.println(logger.isLoggable(Level.ALL));
		logger.log(Level.OFF,"abc");
		logger.log(Level.OFF,"我爱{0}","美女");
		logger.log(Level.OFF,"我爱{0}和{1}",new Object[]{"美女","可爱的妹子"});
		logger.log(Level.OFF,"我喜欢妹纸",new Throwable("没错"));
		System.out.println("接着执行");
		logger.log(Level.OFF,Supp::out);
		logger.logp(Level.OFF,"Dog","bark","汪汪");
		logger.logp(Level.OFF,"Cat","miao","喵喵,{0}","招财");
		logger.logp(Level.OFF,"Pig","eat","今天吃{0},加上{1}",new Object[]{"玉米","煎蛋"});
		logger.logp(Level.OFF,"Horse","run","小马欢快的跑着",new IOException("越过跨栏"));
		logger.logp(Level.OFF,"Bird","fly",new Throwable("飞呀飞"),Supp::out);
		logger.logp(Level.OFF,"Mouse","dig",Supp::out);
		bundle = ResourceBundle.getBundle("animal");
		logger.logrb(Level.WARNING,"Bird","peak",bundle,"look","叼起来","然后跑走");
		logger.logrb(Level.WARNING,"Bird","peak",bundle,"look","o","o");
		logger.logrb(Level.WARNING,"Bird","peak",bundle,"look",new Throwable("赚到了"));
		logger.logrb(Level.SEVERE,bundle,"look","赚到了","赶紧叼走");
		logger.logrb(Level.SEVERE,bundle,"look",new Throwable("88"));
		FileHandler fh = new FileHandler("g.xml");
		ConsoleHandler ch = new ConsoleHandler();
		Logger logger6 = Logger.getLogger("www");
		System.out.println(Arrays.toString(logger6.getHandlers()));
		logger6.addHandler(fh);
		System.out.println(Arrays.toString(logger6.getHandlers()));
		logger6.addHandler(ch);
		System.out.println(Arrays.toString(logger6.getHandlers()));
		logger6.removeHandler(fh);
		System.out.println(Arrays.toString(logger6.getHandlers()));
		logger6.removeHandler(ch);
		System.out.println(Arrays.toString(logger6.getHandlers()));
		logger6.setFilter((lo)-> true);
		System.out.println(logger.getFilter());
		logger6.log(Level.OFF,"金庸是天才");
		logger6.setLevel(Level.SEVERE);
		logger6.log(Level.OFF,"因为他的书很好看");
		//logger6.setParent(logger);
		logger6.log(Level.OFF,"我还是太差劲了");
		logger.log(Level.OFF,"look");
		logger.setResourceBundle(bundle);
		logger.log(Level.OFF,"look");
		System.out.println(logger6.getUseParentHandlers());
		logger6.log(Level.OFF,"abc");
		logger6.setUseParentHandlers(false);
		logger6.log(Level.OFF,"def");
		System.out.println(logger4);
		System.out.println(logger6.getParent());
		System.out.println(logger3);
		System.out.println(logger2);
		System.out.println(logger);
		Logger logger7 = Logger.getLogger("uu");
		Logger logger8 = Logger.getLogger("ii","animal");
		logger7.setParent(logger8);
		logger8.addHandler(new FileHandler("父级.xml"));
		logger7.log(Level.OFF,"测试一下,这是子级记录器的日志");
		logger7.log(Level.OFF,"look");
		System.out.println(logger7.getResourceBundle());
		logger8.setResourceBundle(bundle);
		logger7.log(Level.OFF,"look");
		System.out.println(logger7.getResourceBundle());
		System.out.println(logger7.getResourceBundleName());
		logger.severe("大海啊,你都是水!");
		logger.severe(Supp::out);
		logger.throwing("Dog","name",new Throwable("小狗妮妮"));
		logger.warning("这是警告");
		logger.warning(Supp::out);
	}
}	
class DiagnosisMessages
{
	static String systemHealthStatus()
	{
		System.out.println("被调用了");
		return new ArrayList(Arrays.asList(1,2,3)).toString();
	}
}
class Supp
{
	static String out()
	{
		return "Supplier.out";
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

细水长流cpu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值