java - 日志处理


打印日志是很重要的,可以从日志看出很多信息。

所以,

日志,

1.需要引入jar包


                <dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.14</version>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.0</version>
		</dependency>

2.配置


3.java调用

package soundsystem.thread;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class SleepThread {
   
	Log log = LogFactory.getLog(SleepThread.class);
	
	  public static void main(String[] args) {
		System.out.println("主线程 :" + Thread.currentThread().getName());
		MyThread myThread = new SleepThread().new MyThread();
		myThread.start();
		try {
			Thread.currentThread().sleep(2000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("主线程 :" + Thread.currentThread().getName() + "跑完");  
	}
	
	class MyThread extends Thread {
		@Override
		public void run() {
			System.out.println("子线程在跑 :" + Thread.currentThread().getName());
				try {
					Thread.currentThread().sleep(2000);
					System.out.println("子线程业务完成 : " + Thread.currentThread().getName());
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}
	}
}

3.1配置详细解释

log4j.properties 

扫描二维码关注公众号,回复: 2343556 查看本文章


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 =  %d{ABSOLUTE} %5p %c{1}:%L - %m%n


### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D:/logs/xiaoqiang.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 ] - [ %l ] - [ %F ] - [ %L ] %m%n








## org.apache.log4j.ConsoleAppender 控制台 org.apache.log4j.DailyRollingFileAppender 一天创建一个文件
## Target 指定输出台  layout 输出表达式  ConversionPattern 具体表达式 
## File 指定消息输出到文件  Append true消息增加到指定文件  false 覆盖 
## Threshold 指定消息输出最低层次 


## 日志信息符号格式含义


##
## %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
## %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
## %r: 输出自应用启动到输出该log信息耗费的毫秒数
## %c: 输出日志信息所属的类目,通常就是所在类的全名
## %t: 输出产生该日志事件的线程名
## %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
## %%: 输出一个"%"字符
## %F: 输出日志消息产生时所在的文件名称
## %L: 输出代码中的行号 
## %m: 输出代码中指定的消息,产生的日志具体信息
## %n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行


## 可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
## 1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
## 2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
## 3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
## 4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉。


## 参考资料 https://blog.csdn.net/azheng270/article/details/2173430/参考资料:



参考资料:

https://blog.csdn.net/azheng270/article/details/2173430/






猜你喜欢

转载自blog.csdn.net/qq_32363305/article/details/81064421