day13

1.常用的4种异常:
(1).NullPointerException 空指针异常
(2).ArrayIndexOutOfBoundsException 数组下标越界异常
(3).InputMismatchException 输入不匹配异常
(4).ArithmeticException 数学运算异常
2.java中所有类的父类:Obiect类
3.Thowable分为Error类和Exception类,而Exception又分为IOException类和RuntimeException类(运行时异常类)
4.函数:
System.out.print(e.getMessage());
System.out.print(e.toString());
5.捕获异常:
try{当前有可能产生异常的代码,实行对它监控}catch(Exception e)catch(Exception e1){e.printStackTrace();}finally{}
原理:(1)异常范围一定是catch(前一个)小于catch(后一个)
(2)当产生异常的时候,马上会跳入到相应的catch里面,异常后面的内容不会被执行
(3)当try里面的内容被正常执行时,catch不会被执行,finally被执行
6.抛出异常:(谁去使用,谁去处理的原则)
访问修饰符+可选修饰符+返回值+方法名+参数列表+throws Exception{}
throw 关键字,手动地异常,
throw new Arithmetic Exception();
7.log4j log for java 日志记录工具

下面借用Mr.liu对log4j的总结:
希望以文件记录异常信息,甚至记录程序正常运行的关键步骤信息,而不是在控制台上输出,这种情况该如何处理呢?

使用流行的开源日志记录工具 -log4j来实现

日志(log)
主要用来记录系统运行中一些重要操作信息
便于监视系统运行情况,帮助用户提前发现和避开可能出现的问题,或者出现问题后根据日志找到原因

日志分类
SQL日志、异常日志、业务日志

log4j是一个非常优秀的开源日志记录工具
控制日志的输出级别
控制日志信息输送的目的地是控制台、文件等
控制每一条日志的输出格式

使用:
1:导入jar包
2:src同目录下建立log4j.properties文件
3:编写日志

案例01
log4j.rootLogger=debug,appender1// appender1是自己指定的名字
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j.appender.appender1.layout=org.apache.log4j.SimpleLayout

private static Logger logger = Logger.getLogger(TestLogger.class);
// 记录 debug 级别的信息
logger.debug("This is debug message.");
// 记录 info 级别的信息
logger.info("This is info message.");
// 记录 error 级别的信息
logger.error("This is error message.");
//规则
//Loggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL
//DEBUG < INFO < WARN < ERROR < FATAL

想想catch中应该用什么级别

注意这里我们需要主要配置这三个玩意
1、Loggers
2、Appenders
3、Layouts

Appenders 追加
禁用和使用日志请求只是Log4j的基本功能,Log4j日志系统还提供许多强大的功能,比如允许把日志输出到不同的地方,如控制台(Console)、文件(Files)等,可以根据天数或者文件大小产生新的文件,可以以流的形式发送到其它地方等等。
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)隔一段时间
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

布局主要格式为
1.org.apache.log4j.HTMLLayout (以 HTML 表格形式布局),
   2.org.apache.log4j.PatternLayout (可以灵活地指定布局模式),
   3.org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串),
   4.org.apache.log4j.TTCCLayout (包含日志产生的线程、类别等等信息)

案例2:将错误信息输出到html文件中
log4j.rootLogger=debug,appender1
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=c:\\myLog4J.html
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout

案例3:输出日志信息到文件中
log4j.appender.appender2=org.apache.log4j.FileAppender
log4j.appender.appender2.File=c:\\myLog4J.txt
log4j.appender.appender2.layout=org.apache.log4j.SimpleLayout

案例4:自定义输出样式
log4j.appender.appender3=org.apache.log4j.ConsoleAppender
log4j.appender.appender3.layout=org.apache.log4j.PatternLayout
log4j.appender.appender3.layout.ConversionPattern =%d{yyyy-MM-dd hh:mm:ss} %r %t %p - %c -%l -%m%n

Log4J 采用类似 C 语言中的 printf 函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息
   %p 输出优先级,即 DEBUG , INFO , WARN , ERROR , FATAL
   %r 输出自应用启动到输出该 log 信息耗费的毫秒数
   %c 输出所属的类目,通常就是所在类的全名
   %t 输出产生该日志事件的线程名
   %n 输出一个回车换行符, Windows 平台为 “rn” , Unix 平台为 “n”
   %d 输出日志时间点的日期或时间,默认格式为 ISO8601 ,也可以在其后指定格式,比如: %d{yyy MMM dd HH:mm:ss,SSS} ,输出类似: 2002 年 10 月 18 日 22 : 10 : 28 , 921
   %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

案例05
DailyRollingFileAppender是日志记录软件包Log4J中的一个Appender,它能够按一定的频度滚动日志记录文件。
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=‘.‘yyyy-MM-dd-HH-mm
log4j.appender.file.File=c:\\run.log
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%c %x - %m%n

在DailyRollingFileAppender中可以指定monthly(每月)、 weekly(每周)、daily(每天)、half-daily(每半天)、hourly(每小时)和minutely(每分钟)六个频度,这是通过为 DatePattern选项赋予不同的值来完成的。DatePattern选项的有效值为:
‘.‘yyyy-MM,对应monthly(每月)
‘.‘yyyy-ww,对应weekly(每周)
‘.‘yyyy-MM-dd,对应daily(每天)
‘.‘yyyy-MM-dd-a,对应half-daily(每半天)
‘.‘yyyy-MM-dd-HH,对应hourly(每小时)
‘.‘yyyy-MM-dd-HH-mm,对应minutely(每分钟)

简单解决中文:
log4j.appender.appender3.encoding=GBK

时间: 2024-10-10 22:23:24

day13的相关文章

前端基础之CSS - day13

写在前面 上课第13天,打卡: 出去浪,终有一日要还的: 参考:http://www.cnblogs.com/yuanchenqi/articles/6856399.html 一.CSS语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. h1 {color:red; font-size:14px;} 二.CSS三种引入方式 1.行内式 行内式是在标记的style属性中设定CSS样式,即直接写在HTML标签里的css样式: <p style="color: red"

21天战拖记——Day13:番茄工作法:遇到突发事件怎么办(2014-05-16)

今天在寝室打扫卫生,将自己积攒下来的脏衣服都洗了,也将自己的桌子收拾干净了,但是还是东西太多了,看来真得扔掉一些了,胡乱收集是种病,得治.晚上听了@秋叶 老师在PPT群里面的内部分享--<用产品经理思维看产品--谈谈微博,微信朋友,工作圈>.觉得自己以前真的是不善于思考,很多的东西只是停留在了表面现象,没有深入的理解.有地提高,对于产品,原来还有这么多的内容在里面,长知识了."和秋叶一起学PPT"这门课程,买的真值. 学习<小强升职记(升级版)>记录: 如何应对

leetcode -day13 Valid Palindrome &amp; Triangle &amp; Pascal&#39;s Triangle I II

1.  Valid Palindrome Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. For example, "A man, a plan, a canal: Panama" is a palindrome. "race a car" is not a palindrome. Note:

Python之路day13 web 前端(JavaScript,DOM操作)

参考链接:http://www.cnblogs.com/wupeiqi/articles/5433893.html day13 1. CSS示例 2. JavaScript 3. DOM操作 上节内容回顾: 1. HTML标签 html/head/body/ input div,span a p br span table > tr行 th表头列 td表头列 h form> action method enctype=;;; select option input系列: text passwo

Python 模块day13

模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用. 简单地说,模块就是一个保存了Python代码的文件.模块能定义函数,类和变量.模块里也能包含可执行的代码. 例子 一个叫做aname的模块里的Python代码一般都能在一个叫aname.py的文件中找到.下例是个简单的模块support.py. def print_func( par ):    print "Hello : 

##DAY13——可视化编程之XIB

##DAY13——可视化编程之XIB #import "Student.h" @interface StudentTableViewCell : UITableViewCell @property (strong, nonatomic) IBOutlet UIImageView *headerImageView; @property (strong, nonatomic) IBOutlet UILabel *nameLabel; @property (strong, nonatomic

C++windows内核编程笔记day13 进程、线程与信号量

Windows进程 进程是一个容器,包含程序执行需要的代码.数据.资源等信息, windows进程的特点: 每个进程都有自己的ID号 每个进程都有自己的地址空间,进程之间无法访问对方的地址空间. 每个进程都有自己的安全属性 每个进程至少包含一个线程. 获取和释放环境信息 GetEnvironmentStrings FreeEnvironmentStrings 获取或设置 本程序的环境变量 GetEnvironmentVariable SetEnvironmentVariable 示例: char

python 全栈开发,Day13(迭代器,生成器)

一.迭代器 python 一切皆对象 能被for循环的对象就是可迭代对象 可迭代对象: str,list,tuple,dict,set,range 迭代器: f1文件句柄 dir打印该对象的所有操作方法 s = 'python' print(dir(s)) 执行输出: ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__

day13 MySQL 及数据库相关

day13 MySQL 及数据库相关 1. MySQL 的安装 2. 数据库的创建细节 3. 创建表的细节 4. 增删改语句 5. 查询语句 6. mysql 表的约束 7. 数据库表的设计 7.1 1对多或多对1关系的设计 7.2 多对多关系的设计 7.3 1对1关系的设计 8. 自关联对象的数据库设计 Author:相忠良 Email: [email protected] 起始于:May 16, 2018 最后更新日期:May 26, 2018 声明:本笔记依据传智播客方立勋老师 Java

DAY13 内置函数

内置函数 内置函数就是python提供给我们的函数,可以随时拿来使用.截止到python3.6.2,一共有68种内置函数.按照功能,可以分为以下几类: 作用域相关的:2种.  迭代器/生成器相关的:3种.   基础数据类型相关的:38种.  反射相关:4种.  面向对象相关的:9种.  其他:12种. 作用域相关 globals():以字典的形式返回当前位置的所有全局变量. name = 'he' print(globals()) >>> {'__name__': '__main__',