1.首先在pom中引入相关jar包apache
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency>
2.配置相关的log4j2.xmlapi
<?xml version="1.0" encoding="UTF-8" ?> <Configuration> <Appenders> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%-5p %marker](%C:%L) %m%n" /> </Console> <File name="FILE" fileName="${sys:catalina.home}/logs/日志名字.log"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%-5p %marker](%C:%L) %m%n" /> </File> </Appenders> <Loggers> <Logger name="产生日志包" level="debug" additivity="false"> <AppenderRef ref="STDOUT" /> <AppenderRef ref="FILE" /> </Logger> <Logger name="产生日志包" level="debug" additivity="false"> <AppenderRef ref="STDOUT" /> <AppenderRef ref="FILE" /> </Logger> <Root level="warn"> <AppenderRef ref="STDOUT" /> <AppenderRef ref="Async" /> </Root> </Loggers> </Configuration>
<logger>标签的做用:为不一样的包使用不一样的log配置。
如配置了 debug
<Logger name="产生日志包" level="debug" additivity="false">
<AppenderRef ref="STDOUT" />
<AppenderRef ref="FILE" />
</Logger>日志
则包及其子包下的全部类使用的log配置都是debug,且输出到FILE
其余类使用的log配置都是根loggercode
logger的默认配置具备继承特性, 即全部的logger配置继承根logger,
name为“a.b.c"的logger配置继承name为"a.b"的配置, name为"a.b"又继承name为"a"的logger而配置。。。
若使用了additivity="false"表示不继承父logger的配置。xml
3.使用@Log4j2相关注解对象
4.经过try...catch以及抛出异常,将异常写入文件 Java异常处理主要经过5个关键字控制:try、catch、throw、throws和finally。try的意思是试试它所包含的代码段中是否会发生异常;而catch当有异常时抓住它,并进行相应的处理,使程序不受异常的影响而继续执行下去;throw是在程序中明确引起异常;throws的做用是若是一个方法能够引起异常,而它自己并不对该异常处理,那么它必须将这个异常抛给调用它的方法;finally是不管发不发生异常都要被执行的代码
关键字:throw,throws,try和catch的用法以下:
一、throws出如今方法的声明中,表示该方法可能会抛出的异常,容许throws后面跟着多个异常类型
二、throw出如今方法体中,用于抛出异常。当方法在执行过程当中遇到异常状况时,将异常信息封装为异常对象,而后throw。
三、try出如今方法体中,它自身是一个代码块,表示尝试执行代码块的语句。若是在执行过程当中有某条语句抛出异常,那么代码块后面的语句将不被执行。
四、catch出如今try代码块的后面,自身也是一个代码块,用于捕获异常try代码块中可能抛出的异常。catch关键字后面紧接着它能捕获的异常类型,全部异常类型的子类异常也能被捕获。
继承