在java中使用log4j
来源:互联网 发布:spss sas r python 编辑:程序博客网 时间:2024/05/19 17:56
简单使用log4j
要在java项目中使用log4j,需要下载log4j-x.x.x.jar。如果是使用的mvn或gradle构建项目,则添加依赖就可以了,我的pom.xml如下:
<dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency></dependencies>
这csdn是不是有bug啊,我贴的代码明明没有前面的html属性,我的内容是从<dependencies>开始的,无语
配置log4j.propertieslog=D:/log4jlog4j.rootCategory=INFO, stdout,filelog4j.rootLogger=INFO, stdout,file### stdout ###log4j.appender.stdout= org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss} %t %p %C.%M(%L) %m%nlog4j.org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager=INFOlog4j.org.apache.http.impl.nio=INFO# Define the file appenderlog4j.appender.file=org.apache.log4j.RollingFileAppender#log4j.appender.file.File=${log}/log.loglog4j.appender.file.File=./log.log# Define the layout for file appenderlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.conversionPattern=%d{HH:mm:ss} %t %p %C.%M(%L) %m%n# File max sizelog4j.appender.file.MaxFileSize=100MB# Keep three backup files.log4j.appender.file.MaxBackupIndex=3650
java类如下:
public class Log4jExample { public static void main(String[] args){ Logger log = Logger.getLogger( Log4jExample.class.getName()); log.debug("Hello this is an debug message"); log.info("Hello this is an info message"); }}
运行后得到的结果如下:
同时在项目目录下可以看到日志文件
log4j与slf4j结合
log4j是一个日志系统,slf4j是一个日志系统的封装,对外提供统一的API。
使用slf4j需要下载slf4j-api-x.x.x.jar 它提供对外一致的API接口,其本身不提供日志实现。
如果想把slf4j绑定到log4j,则需要下载slf4j对log4j的相应”驱动”——slf4j-log4j12-x.x.x.jar,这样就可以使用slf4j提供的API,用log4j实现输出日志了。
所谓驱动,就是实现了slf4j的一些接口,用你喜欢的日志系统打日志。
slf4j还支持好多日志系统,并提供了相应的“驱动”包,例如:
slf4j-jdk14-x.x.x.jar是为java.util.logging提供的驱动
slf4j-simple-x.x.x.jar直接绑定System.err
lf4j-jcl-x.x.x.jar是为commons-logging提供的驱动
logback-classic-x.x.x.jar是为logback提供的驱动
官方的网站:http://www.slf4j.org/manual.html
为何使用slf4j
我们在开发过程中可能使用各种log,每个Log有不同的风格、布局,如果想灵活的切换那么slf4j是比较好的选择。
如何使用slf4j
要使用slf4j,我们需要添加jar包或者添加依赖,如下:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version></dependency>
log4j.properties我们使用和上面相同的配置,这里不再赘述,看下java类
public class Slf4jExample { public static void main(String[] args) throws IOException,SQLException { Logger logger = LoggerFactory.getLogger(Slf4jExample.class); logger.info(">>>>>>{}","Hello this is an info message"); }}
不同点就是slf4j有一个占位符属性,这不仅降低了你代码中字符串连接次数,而且还节省了新建的String对象。通过使用SLF4J,你可以在运行时延迟字符串的建立,这意味着只有需要的String对象才被建立。
log4j与Lombok结合使用
下面给大家介绍一个更高大上的方式,如果大家使用过Lombok,一定会注意到Lombok本身就封装了slf4j,这样我们就不用使用代码去获得Logger 对象了,首先需要添加依赖:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> <scope>provided</scope></dependency>
使用的时候便十分方便了,只需简单的一句话就搞定
@Slf4jpublic class LombokExample { public static void main(String[] args) { log.info(">>>>>>{}", "Hello this is an info message"); }}
效果是一样的,我就不再展示了参考:
http://blog.csdn.net/ydpiaoyun/article/details/6717969
http://www.jb51.net/article/41001.htm
http://www.yiibai.com/log4j/log4j_sample_program.html
http://zhaoyanblog.com/archives/167.html
http://blog.csdn.net/foreverling/article/details/51385128
阅读全文
0 0
- 在java中使用log4j
- log4j 如何在Java web中使用
- Java中使用Log4j
- 在java应用中使用log4j日志工具
- 初步配置log4j(在java web中使用)
- 在java项目中使用log4j的实例
- 在java项目中使用Log4j -1- 概述
- 在java项目中使用log4j的实例
- 在java项目中使用Log4j -2-Logger
- 在java项目中使用log4j的实例
- 在 JBuilder 中使用 Log4j
- 在eclipse中使用log4j
- 在应用程序中使用log4j
- 在javaweb中使用log4j
- 在web中使用log4j
- 在Liferay中使用Log4j
- log4j在java中实现
- Log4j在Java中的使用
- uvc-driver.c分析
- Android Framework与AOSP源码对应关系
- Eclipse使用Maven创建普通Java工程时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-
- [ DP 树状数组 dfs序 倍增 ] Codeforces856D Masha and Cactus
- spring cloud 配置中心的部署
- 在java中使用log4j
- 苹果手机点击输入框页面自动放大
- 自动化运维工具Saltstack学习笔记(salt-ssh/salt-api/salt-syndic)
- 【LCA+打标记】BZOJ4719(UOJ#261) [Noip2016]天天爱跑步
- Deep Reinforcement Learning 基础知识(DQN方面)
- jQuery操作html页面的标签即html页面(其实不只是针对jQuery,而是针对整个JavaScript领域,即JavaScript脚本或者函数操作html页面的标签)的工作原理是什么?
- 爬虫技术(04)神箭手爬虫field的属性
- 模板字符串
- VS2010安装SignalR