技术标签: 编程分享
Log4j是Java的一个日志工具,是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
这里通过Maven引入Log4j的依赖包
使用Idea工具新建一个Maven工程,建好的工程目录如下:
其中,pom.xml是Maven的工程配置文件,我们需要编写此文件来向工程添加外部依赖包。(如果Idea提示是否导入工程,这里选择Auto import)
<dependencies>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
Log4j的最新版Maven依赖配置项可以在mvnrepository.com搜索得到。
Log4j使用src/main/resources/log4j.properties
作为配置文件。内容如下:
###Log4j设置###
log4j.rootLogger=debug,stdout,D
### 输出信息到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [ %t ] %m%n
### 输出DEBUG 级别以上的日志到日志文件 ###
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File=./log/debug.log
log4j.appender.D.Append=true
log4j.appender.D.Threshold=DEBUG
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
LogUtils类
import org.apache.log4j.Logger;
/**
* LogUtils
* 日志输出类
* @author ScorpioDong
* @version 1.0
* @date 2020/3/14 9:48 PM
*/
public class LogUtils {
private static final Logger debugLogger = Logger.getLogger("DEBUG");
private static final Logger infoLogger = Logger.getLogger("INFO");
private static final Logger warnLogger = Logger.getLogger("WARN");
private static final Logger errorLogger = Logger.getLogger("ERROR");
/**
* 输出debug级别的日志
*
* @param msg Object 要输出的消息
*/
public static void logDebug(Object msg) {
debugLogger.debug(msg);
}
/**
* 输出info级别的日志
*
* @param msg Object 要输出的消息
*/
public static void logInfo(Object msg) {
debugLogger.info(msg);
}
/**
* 输出warn级别的日志
*
* @param msg Object 要输出的消息
*/
public static void logWarn(Object msg) {
debugLogger.warn(msg);
}
/**
* 输出error级别的日志
*
* @param msg Object 要输出的消息
*/
public static void logError(Object msg) {
debugLogger.error(msg);
}
}
测试
public static void main(String[] args) {
LogUtils.logDebug("Hello1");
LogUtils.logInfo("Hello2");
LogUtils.logWarn("Hello3");
LogUtils.logError("Hello4");
}
执行结果:
[DEBUG] 2020-03-15 15:00:48,441 [ main ] Hello1
[INFO ] 2020-03-15 15:00:48,443 [ main ] Hello2
[WARN ] 2020-03-15 15:00:48,443 [ main ] Hello3
[ERROR] 2020-03-15 15:00:48,443 [ main ] Hello4
日志文件信息:
Log4j有三个主要的组件:Loggers(日志记录器),Appenders (日志的输出源)和Layouts(日志的布局)。
Loggers可以理解为日志的级别,Log4j分为5个级别,从轻到重依次为:DEBUG、INFO、WARN、ERROR和FATAL。
Log4j可以在代码中调用相应级别的日志输出方法实现日志的记录。特别的规则:Log4j可以配置全局日志等级,最终输出的日志登记不低于全局日志等级。简单来说,全局日志等级为DEBUG则,五种日志全部记录,全局日志等级为WARN则会忽略DEBUG和INFO等级日志。
Appenders可以理解为日志将要输出的地方的配置。Log4j允许把日志输出到不同的地方,如控制台(Console)、文件(Files)等,可以根据天数或者文件大小产生新的文件,可以以流的形式发送到其它地方等等。
常用配置项如下:
Layouts可以理解为日志以怎样的格式输出。Layouts提供四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式。
常用配置项如下:
log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
log4j.appender.appenderName = org.apache.log4j.ConsoleAppender
常用配置项如下:
log4j.appender.appenderName.layout=org.apache.log4j.PatternLayout
常用配置项如下:
格式化符号:
格式化修饰符
一、MFC的概念和作用 1、什么是MFC? 全称:Microsoft Foundation Class Library(微软基础类库) 1-MFC从硬盘存在形式来说就是一个库(静态MFC库、动态MFC库) 2-MFC从原理来说还是一个程序框架 2、为什么使用MFC? 基于框架编程,提高工作效率,减少开发周期,降低开发成本。二、..._mfc简介
Ganglia简介,ganglia工作流程以及组成
0)到官网去下在jdkwget http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.tar.gz -O jdk-7-linux-x64.tar.gz1)安装tar -zxvf jdk-7-linux-x64.tar.gz2)移动到指定目录,下面用软连接的原因是便于以后升级mv jdk1.7.0 /Application/ln ..._java1.7de wegt地址
市场上远程控制的软件很多,大多是商业软件,价格高,用户端也要去安装 client。此方案的优势是免费,开源,免安装。1. 下载ultraVNC软件,放到域控下的netlogon文件夹下;http://pan.baidu.com/s/1dFcXVxf2. 打开vnc.exe,配置好只读密码、远程控制密码和隐藏图标;3.设置域控组策略,从共享文件夹复制v...
About to export specified users ... . exporting pre-schema procedural objects and actions . exporting foreign function library names for user SYSTEM . exporting PUBLIC type synonyms
Andoird太头疼了,尤其有些机器就是屏幕大别的硬件条件都很烂,为了优化渲染效率可以试试安卓的硬件缩放技术,我在真机上已经测试通过,效率确实提升了很多,FPS直线上升。。原理如下http://android-developers.blogspot.it/2013/09/using-hardware-scaler-for-performance.html但是需要拿到Unity andro...
首先放一个两路视频合并的例子ffmpeg -pix_fmt rgb24 -s 960x960 -i bag_level_7_renderSize_1_960x960_8bits_rgb24i.rgb -pix_fmt rgb24 -s 960x960 -i bag_level_7_renderSize_1_960x960_8bits_rgb24i.rgb -filter_complex "[0:v]pad=iw*2:ih[a];[a][1:v]overlay=w*1" -pix_fmt rgb24 o_ffmpeg 两个摄像头画面拼接在一个画面中
戴尔Precision 3530移动图形工作站笔记本使用总结(配置|硬盘|显卡|屏幕|续航)配置说明CPU8代标压CPU的本子大家应该也都见多了,但是实际跑分的时候还是要感慨一句:intel这管牙膏挤得真香PCMARK 10跑分略低于notebookcheck上看的评测,料想由于notebookcheck的测试机CPU、内存上略强cinebench 15随手跑的分,cinebench15算是一个很..._precision 3530加硬盘
CREATE DATABASE IF NOT EXISTS cms DEFAULT CHARACTER SET utf8;USE cms;-- 管理员表cms_adminCREATE TABLE cms_admin(id TINYINT UNSIGNED AUTO_INCREMENT KEY,username VARCHAR(20) NOT NULL UNIQUE,passwo..._创建新闻表 cms_news -- 编号、新闻标题、新闻内容、新闻发布时间、点击量、是否
常用公共DNS服务器地址DNS(Domain Name System),即域名解析系统,作为将域名和IP地址相互映射的一个分布式数据库,能够使人通过相对好记的域名访问网站,而是一串数字。目前国内运营商通过使用DNS劫持和DNS污染的方法,干扰用户正常上网(弹出广告、某无法访问某些网站等)。//原来是这么回事,我用电信的,就不时弹出电信的广告。奸商啊~!全文:http://jingyan.bai...
英文原文:http://docs.scala-lang.org/style/译文如下:命名约定一般来说,Scala使用“驼峰命名法”命名。也就是说,每个单词都被大写,除了可能的第一个单词:UpperCamelCaselowerCamelCasenames(_)中的下划线实际上并不被编译器所禁止,而是强烈地不鼓励,因为它们在Scala语法中具有特殊意义。(但请看下面的例外。)一、类/性状类应以上面...
作者:焦振清时间:2018-07-23当前你们公司使用的Hadoop版本是什么HDFS常见的数据压缩格式有哪些,介绍其中一种详细的实现方式HDFS垃圾回收的时间模式是多久,如何修改该时间HDFS如何生效机架感知,取消机架感知有什么问题HDFS常见的运维操作有哪些,哪些操作是高危的,如果高危操作出现问题,如何解决HDFS常见的故障是什么,如何处理,是否可以给出三种预案来防范大部分常..._hdfs有哪些核心指标需要采集和监控