jul

Java常用日志框架介绍

一世执手 提交于 2020-03-16 04:06:16
转载自 Java常用日志框架介绍 java日志概述 对于一个应用程序来说日志记录是必不可少的一部分。线上问题追踪,基于日志的业务逻辑统计分析等都离不日志。java领域存在多种日志框架,目前常用的日志框架包括Log4j,Log4j 2,Commons Logging,Slf4j,Logback,Jul。 java常用日志框架类别介绍 Log4j Apache Log4j是一个基于Java的日志记录工具。它是由Ceki Gülcü首创的,现在则是Apache软件基金会的一个项目。 Log4j是几种Java日志框架之一。 Log4j 2 Apache Log4j 2是apache开发的一款Log4j的升级产品。 Commons Logging Apache基金会所属的项目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名为Commons Logging。 Slf4j 类似于Commons Logging,是一套简易Java日志门面,本身并无日志的实现。(Simple Logging Facade for Java,缩写Slf4j)。 Logback 一套日志组件的实现(slf4j阵营)。 Jul (Java Util Logging),自Java1.4以来的官方日志实现。 看了上面的介绍是否会觉得比较混乱,这些日志框架之间有什么异同,都是由谁在维护?

Linux /proc、/dev Principle

試著忘記壹切 提交于 2020-03-10 03:21:19
目录 1. /proc简介 2. 内核机制相关 3. 进程信息 4. 硬件设备相关 5. 系统信息 6. /dev简介 7. 内存相关 1. /proc简介 在linux的根目录下有一个/proc目录,/proc文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在Linux内核空间和用户空间之间进行通信。在/proc文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件不同的是,这些虚拟文件的内容都是动态创建的(即在我们执行指令的那一刹那才产生的) /proc文件系统包含了: 1. 一些目录(用作组织信息的方式) 例如linux对于当前运行中的每一个进程都在/proc目录下建立一个目录(目录名就是process-id),例如init的进程号是1,则目录名也是1 2. 虚拟文件 虚拟文件可以向用户呈现内核中的一些信息,也可以用作一种从用户空间向内核发送信息的手段 执行: ll /proc,我们可以得到如下结果 dr-xr-xr-x. 8 root root 0 Jul 28 20:31 1 dr-xr-xr-x. 8 root root 0 Jul 28 20:31 10 dr-xr-xr-x. 8 root root 0 Jul 28 20:31 1024 dr-xr-xr-x. 8 root root 0 Jul 28 20:31 11 dr

bwa index|amb|ann|bwt|pac|sa

为君一笑 提交于 2020-02-12 11:01:30
cat /xxx/DU-030-17.gapcloser.fa |head -1000 > t1.fa bwa index -a bwtsw -p t1 t1.fa 1>t1.bwa_index.log 2>&1 #$ ll #total 292K #-rw-r--r-- 1 XXX 638 Jul 23 10:55 t1.amb #-rw-r--r-- 1 XXX 183 Jul 23 10:55 t1.ann #-rw-r--r-- 1 XXX 98K Jul 23 10:55 t1.bwt #-rw-r--r-- 1 XXX 99K Jul 23 10:54 t1.fa #-rw-r--r-- 1 XXX 25K Jul 23 10:55 t1.pac #-rw-r--r-- 1 XXX 49K Jul 23 10:55 t1.sa #-rw-r--r-- 1 XXX 70 Jul 23 10:57 t1.bwa_index.log #-rw-r--r-- 1 XXX 0 Jul 23 10:56 w.sh [bwa_idx_build] fail to open file 't2.fa' : No such file or directory 其中: 参数 -a 用于指定建立索引的算法: bwtsw 适用于>10M is 适用于参考序列<2G (默认-a is) 可以不指定

netty权威指南学习笔记四——TCP粘包/拆包之粘包问题解决

筅森魡賤 提交于 2020-02-07 00:25:52
  发生了粘包,我们需要将其清晰的进行拆包处理,这里采用LineBasedFrameDecoder来解决 LineBasedFrameDecoder的工作原理是它依次遍历ByteBuf中的可读字节,判断看是否有“\n”或“\r\n”,如果有,就以此为结束位置,从可读索引到结束位置区间的字节就组成一行,它是以换行为结束标志的编码器,支持携带结束符或者不携带结束符两种方式,同时支持配置单行最大长度,如果连续读取到的最大长度后仍没有发现换行符,就会抛出异常,同时忽略掉之前读到的异常码流。 StringDecoder的功能非常简单,就是将接收到的对象转换为字符串,然后继续调用后面的Handler. LineBasedFrameDecoder+StringDecoder组合就是按行切换的文本解码器。 主要思路是改造客户端和服务端的处理IO的类之前添加相应解码器,解码器之后才去调用IO处理类的Handler。 客户端改造的代码部分 TheClientServer 在处理IO的类 initChannel()方法中调用处理IO类前添加相关解码的方法 1 public class ClientChildHandler extends ChannelInitializer<SocketChannel>{ 2 @Override 3 protected void initChannel

debug 查询服务日志,用于定位服务在运行和启动过程中出现的问题

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-28 05:00:32
vim /usr/lib/systemd/system/sshd.service [Unit] Description=OpenSSH server daemon Documentation=man:sshd(8) man:sshd_config(5) After=network.target sshd-keygen.service Wants=sshd-keygen.service [Service] Type=notify EnvironmentFile=/etc/sysconfig/sshd ExecStart=/usr/sbin/sshd -d -D $OPTIONS // 添加-d ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target 然后重启服务 systemctl daemon-reload systemctl restart sshd 查看系统日志 journalctl -xe -u sshd -f 在另开一个终端,使用ssh登录不同用户就会看到debug信息 -- Subject: Unit sshd.service has finished start-up --

【linux】CentOS 查看系统时间,修改时区

自闭症网瘾萝莉.ら 提交于 2020-01-13 14:33:31
===============CentOS 7.6================ 1.查看系统时间 date 查看当前系统时间以及时区 结果是: Mon Jul 8 09:23:31 UTC 2019 2.更改系统时间时区 timedatectl set-timezone Asia/Shanghai 3.再次查看 date 结果是: Mon Jul 8 17:25:28 CST 2019 4.可以重启后查看,防止重启后失效 reboot ======================= 来源: https://www.cnblogs.com/sxdcgaq8080/p/11155232.html

slf4j、jcl、jul、log4j1、log4j2、logback大总结

删除回忆录丶 提交于 2020-01-07 15:56:56
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> #1 系列目录# 2种日志接口框架,4种日志实现框架 jdk-logging、log4j、logback日志介绍及原理 jcl与jul、log4j1、log4j2、logback的集成原理 slf4j与jul、log4j1、log4j2、logback的集成原理 slf4j、jcl、jul、log4j1、log4j2、logback大总结 slf4j + log4j原理实现及源码分析 Apache Log4j Log4j架构分析与实战 Log4J配置文件详解 Apache Commons Logging Commons Logging 架构分析 JDK Logging JDK Logging 深入分析 Logback 从Log4j迁移到LogBack的理由 Logback 深入分析 Apache Log4j2 Log4j2架构分析与实战 Log4j2配置文件详解 #2 各种jar包总结# log4j1: log4j:log4j1的全部内容 log4j2: log4j-api:log4j2定义的API log4j-core:log4j2上述API的实现 logback: logback-core:logback的核心包 logback-classic: logback实现了slf4j的API commons

每日一句

你离开我真会死。 提交于 2019-12-30 05:11:22
许多或是优美或是深刻的句子,特开此贴,以作收藏。 2014 Mar 21 Get a livelihood, and then practice virtue. 先谋生而后修身。 Apr 19 因为不安而频频回首 无知地索求 羞耻于求救 不知疲倦地翻越每一个山丘 -- 来自李宗盛的《山丘》 临渊羡鱼,不如退而结网。(台上的光鲜,都是由台下的汗水换来的。) Apr 21 Friends are lost by calling often and calling seldom. 交往过密过疏,都会失去朋友。 Jun 26 Being different is one of the most beautiful things on earth. [与众不同是世界上最美好的事情。] Jun 27 Leopards don't change their spots. [本性难移.] Jun 28 One man, no man. [个人是渺小的。] Jun 30 Accidents will happen. [天有不测风云。] You can say that again. [谁说不是呢。] Jul 3 A bosom friend afar brings a land near. [海内存知己,天涯若比邻。a bosom friend: 知心朋友] Jul 4 A hedge

Log4j、Log4j 2、Logback、SFL4J、JUL、JCL的比较

冷暖自知 提交于 2019-12-06 22:12:57
之前就知道有好几种日志框架,但是一直都是听别人讲,在什么时候该用何种logger,哪种logger比较好……一直对 Log4j、Jakarta Commons-Logging、java.util.logging、SLF4J、Logback它们之间的区别已经各自的优势不是很了解,这个周末决 定沉下心来好好研究一下。一下这篇文章,就是我在对比了这几种日志框架之后的一些收获,希望能给大家带来一点收获。 Log4j Log4j = Log for Java. author: Ceki Gülcü license: Apache License V2.0 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、数据库等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 Log4j有7种不同的log级别,按照等级从低到高依次为:TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF。如果配置为OFF级别,表示关闭log。 Log4j支持两种格式的配置文件:properties和xml。包含三个主要的组件:Logger、appender、Layout。 Example for log4j 1.2 <?xml version="1.0" encoding="UTF

架构师必备,带你弄清混乱的JAVA日志体系!

旧巷老猫 提交于 2019-12-04 10:49:35
作者:孤独烟 出处: http://rjzheng.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果觉得还有帮助的话,可以点一下右下角的 【推荐】 。 引言 还在为弄不清 commons-logging-xx.jar 、 log4j-xx.jar 、 sl4j-api-xx.jar 等日志框架之间复杂的关系而感到烦恼吗? 还在为如何统一系统的日志输出而感到不知所措嘛? 您是否依然存在这样的烦恼。比如,要更改spring的日志输出为log4j 2,却不知该引哪些jar包,只知道去百度一下所谓的博客,照着人家复制,却无法弄懂其中的原理? 不要急,不要方!本文带你们弄懂其中的原理,只要你静下心看本文,你就能随心所欲更改你系统里的日志框架,统一日志输出! 正文 日志框架发展史 早年,你工作的时候,在日志里使用了log4j框架来输出,于是你代码是这么写的 import org.apache.log4j.Logger; \\省略 Logger logger = Logger.getLogger(Test.class); logger.trace("trace"); \\省略 但是,岁月流逝,sun公司对于log4j的出现内心隐隐表示嫉妒。于是在jdk1.4版本后