日志-Log4J

日志:

程序中的日志可以用来记录程序在运行的时候点点滴滴。并可以进行永久存储

日志和输出语句的区别:
输出语句日志技术
取消日志需要修改代码,灵活性比较差不需要修改代码,灵活性比较好
输出位置只能是控制台可以将日志信息写入到文件或者数据库中
多线程和业务代码处于一个线程中多线程方式记录日志,不影响业务代码的性能

在这里插入图片描述

Log4J作用:
  1. 通过使用Log4j,可以控制日志信息输送的目的地是控制台、文件等位置
  2. 可以控制每一条日志的输出格式
  3. 通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程
  4. 可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码
日志核心技术:

Loggers(记录器) 日志的级别

  • Loggers组件在此系统中常见的五个级别:DEBUG、INFO、WARN、ERROR 和 FATAL。
  • DEBUG:开发过程打印一些基本的信息
  • INFO:开发过程打印一些重要的信息
  • WARN:警告,可能会出现问题,给出一些提示
  • ERROR:发生错误,但是不影响程序继续运行
  • FATAL:严重的错误,程序会被停止
  • DEBUG < INFO < WARN < ERROR < FATAL。
  • Log4j有一个规则:只输出级别不低于设定级别的日志信息。对应上面的级别
  • 比如配置文件定义了一个INFO级别的,那么 DEBUG的就不会被输入,如果遇到输出不了的问题,可以看看是不是配置的级别太高了

配置文件:

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.ca.ImmediateFlush=true
log4j.appender.ca.Target=System.er
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

测试类:

public class Demo05 {//使用log4j的api来获取日志的对象//弊端:如果以后我们更换日志的实现类,那么下面的代码就需要跟着改//不推荐使用// private static final Logger LOGGER = Logger.getLogger(Demo05.class);//使用slf4j里面的api来获取日志的对象//好处:如果以后我们更换日志的实现类,那么下面的代码不需要跟着修改//推荐使用private static final Logger LOGGER = LoggerFactory.getLogger(Demo05.class);public static void main(String[] args) {LOGGER.debug("debug级别的日志");LOGGER.info("info级别的日志");LOGGER.warn("warn级别的日志");LOGGER.error("error级别的日志");}
}

Appenders(输出源)

Appenders:日志要输出的地方

  • 把日志输出到不同的地方,如控制台(Console)、文件(Files)等。
  • org.apache.log4j.ConsoleAppender(控制台)
  • org.apache.log4j.FileAppender(文件)

Layouts(布局) 日志输出的格式

常用的布局管理器:

可以根据自己的喜好规定日志输出的格式

  • org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
  • org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
  • org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
配置文件:

格式:

  1. log4j.rootLogger=日志级别,appenderName1,appenderName2,…
  2. 日志级别:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。
    OFF:关闭所有日志
    ALL:展示所有日志
  3. appenderName1 就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开。
    例如:log4j.rootLogger=INFO,ca,fa

ConsoleAppender(往控制台输出)常用的选项

  1. ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。
  2. Target=System.err 默认值是System.out。
    System.err是错误输出流,打印的是红色的

FileAppender(往文件输出)常用的选项

  • ImmediateFlush=true:表示所有消息都会被立即输出。设为false则不输出,默认值是true
  • Append=false
    true表示将消息添加到指定文件中,原来的消息不覆盖。
    false则将消息覆盖指定的文件内容,默认值是true。
  • File=D:/logs/logging.log4j: 指定消息输出到logging.log4j文件中

PatternLayout常用的选项

  • log4j.PatternLayout:可以灵活的指定布局模式,最常使用
  • log4j.SimpleLayout:包含日志信息的级别和信息字符串
  • log4j.TTCCLayout:包含日志产生的时间、线程、类别等信息

ConversionPattern=%m%n设定以怎样的格式显示消息

在这里插入图片描述

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

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

相关文章

七月工作笔记 7.7 - 7.11

1. vs第二次单步调试崩溃。。一開始不知道为什么&#xff0c;重装无数次。。后来发现是VAssistX 插件的问题。。。将下载下来的插件包中的VA_X.dll 复制到VAssistX 的安装路径下就可以。2. 发现了一个非常棒的vs配色方案的站点 http://studiostyl.es/3. sendmessage和postme…

VMware安装虚拟机Mac版

VMware&#xff1a; 1、不需要分区或重开机就能再同一台PC上使用多种操作系统。 2、完全隔离并且保护不同操作系统的环境以及所有软件、资料。 3、不同的操作系统之间还能互动操作 4、有复原功能 5、能够设置并且随时修改操作系统的操作环境 下载地址&#xff1a;https://www.v…

Drupal 自己定义主题实体 Theming Custom Entities

在自己定义主题中输出结果时&#xff0c;有三个部分或很多其它特殊的函数。如 hook_menu&#xff0c;Page Callback。MODULE_theme 钩子 1、hook_menu 为了使用自己定义的实体。像创建、编辑、删除、查看实体的功能&#xff0c;就必须要创建一些 Menu path。这里创建、编辑、…

黑暗之魂3正在从服务器获取信息,黑暗之魂3如何解决入侵服务器问题 | 手游网游页游攻略大全...

发布时间&#xff1a;2016-01-04今天为大家带来的是黑暗之魂3法兰守卫入侵方法,一起来看看吧! 黑暗之魂3 法兰守卫入侵方法 法兰守卫怎么入侵 今天为大家带来的是黑暗之魂3法兰守卫入侵方法,一起来看看吧! 你的游戏可能被防火墙禁止了——解决方法:找到你的 ...标签&#xff1a…

Linux用户与用户组

Linux目录详解&#xff1a; 目录名说明/bin重要的二进制 (binary) 应用程序&#xff1a;包含二进制文件&#xff0c;系统的所有用户使用的命令都在这个目录下/boot启动 (boot) 配置文件&#xff1a;包含引导加载程序相关的文件&#xff0c;开机时用到的引导文件/data数据存储区…

数据库增添

条件查询用where 比如&#xff1a;查询Score表中成绩在60到80之间的所有记录。 select DEGREE from score where degree>60 and degree<80 模糊查询用% 比如查询与三相关的数据&#xff1a; where cno like 3% 3%是已三开头 %3%是中间带3 %3是末尾带3 排序查询 orde…

小程序怎样和服务器交互,微信小程序与 Django服务器 数据流 交互通信

Django服务器 解析小程序发送的json二进制字符串https://blog.csdn.net/qq_25068917/article/details/81041048http://www.cnblogs.com/Liang-jc/p/9326680.html小程序 解析Django服务器返回的json二进制字符串(字典)https://blog.csdn.net/qiushi_1990/article/details/759129…

Linux时间date与timedatectl

date&#xff1a; date是Linux里日期管理命令 UTC 协调世界时&#xff0c;又称世界统一时间、世界标准时间、国际协调时间。由于英文&#xff08;CUT&#xff09;和法文&#xff08;TUC&#xff09;的缩写不同&#xff0c;作为妥协&#xff0c;简称UTC GMT 即格林尼治 平太阳时…

2.apache模块mod_rpaf ,让nginx代理后端的apache获取访客真是IP

安装mod_rpaf这个模块 #wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz(下载不了就在百度上找相应的软件包下载) #tar xvfz mod_rpaf-0.6.tar.gz #cd mod_rpaf-0.6检查有没有httpd-devel这个工具包(如果没有就安装一下&#xff0c;有就直接执行…

Linux切换用户

显示目前用户的名称 logname切换用户 su 用户名当在权限不够的时候可以使用下面的命令执行&#xff0c;执行完会再自动切换到执行前的用户 su -c 要执行的命令 要切换的用户名 su -c ls root提高普通用户的操作权限,权限提升到了root sudo <参数> sudo ls sudo其它参…

oracle 之 基础操作

//删除存在的表空间及数据 drop tablespace TS_YYGL including contents and datafiles若是出现了提示 错误 导致无法全部删除&#xff0c;那么就执行以下语句可以得到那些表有主键相关&#xff0c;再执行就可以 select alter table ||owner||.||table_name|| drop constraint …

object类型转换为Array类型

var obj {a: 1, b: 2, c: 3}; // .... var arr []; for(var key in obj){ if(!obj.hasOwnProperty(key)){continue;}var item {}; item[key] obj[key]; arr.push(item); } console.log(arr); // [{a: 1}, {b: 2}, {c: 3}] // 将Object的属性输出成Array function objOf…

关机重启与who

关机&#xff1a; shutdown命令可以用来进行关闭系统&#xff0c;并且在关机以前传送讯息给所有使用者正在执行的程序&#xff0c;shutdown 也可以用来重开机使用者权限&#xff1a;管理员用户 关机语法 shutdown [-t seconds] [-rkhncfF] time [message]参数说明&#xff1a;…

webpack之font-awesome

1、安装font-awesome和font-awesome-loader及依赖 git&#xff1a;https://github.com/shakacode/font-awesome-loader npm install font-awesome-loader less less-loader css-loader style-loader file-loader font-awesome -save 2、配置webpack 官方给出的webpack2.0配置如…

目录命令及权限

目录命令及权限&#xff1a; 命令说明ls列出目录cd切换目录pwd显示目前的目录mkdir创建新目录rmdir删除一个空的目录cp复制文件或目录rm移除文件或目录mv移动文件与目录或修改文件与目录的名称 ls列出目录&#xff1a; ls # 显示不隐藏的文件和文件夹 ls -l # 显示不隐藏的…

【树莓派】【网摘】树莓派与XBMC及Kodi、LibreELEC插件(三)

之前的相关文章参考&#xff1a; 【树莓派】树莓派与XBMC及Kodi、LibreELEC插件&#xff08;一&#xff09; 【树莓派】树莓派与XBMC及Kodi、LibreELEC插件&#xff08;二&#xff09; 【树莓派】树莓派与XBMC及Kodi、LibreELEC插件&#xff08;三&#xff09; ---------------…

前端通信:ajax设计方案(五)--- 集成promise规范,更优雅的书写代码(改迭代已作废,移步迭代10)...

该迭代已作废&#xff0c;最新的请移步这里&#xff1a;https://www.cnblogs.com/GerryOfZhong/p/10726306.html 距离上一篇博客书写&#xff0c;又过去了大概几个月了&#xff0c;这段时间暂时离开了这个行业&#xff0c;让大脑休息一下。一个人旅行&#xff0c;一个人休息&am…

awk怎么用

AWK是一种处理文本文件的语言&#xff0c;是一个强大的文本分析工具。 之所以叫AWK是因为其取了三位创始人 Alfred Aho&#xff0c;Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。 语法如下 awk [选项参数] script varvalue file(s) 或 awk [选项参数] -f…

转盘抽奖

<!DOCTYPE html><html>  <head>   <meta charset"UTF-8">     <title></title>   <style>     .dialWrap { position:absolute; left:50%; top:24px; width:460px; height:460px; margin-left:-246px; } …

Linux软连接

软链接就理解为Windows的快捷方式&#xff0c;因为某些文件和目录的路径很深, 所以需要增加软链接(快捷方式)使用者权限&#xff1a;所有用户 语法&#xff1a; ln -s 目标文件绝对路径 快捷方式路径# 把b.txt的软连接生成到桌面 ln -s aaa/bb/c/b.txt b.txt