java启动jar包将日志打印到文本的简单操作
启动命令:
java-jarweichi-1.0.0.jar
将命令打印到1.log上
java-jarweichi-1.0.0.jar>1.log
补充知识:Java中日志的使用(包含指定日志信息输出到指定地方)
一、前言
对于我们开发者而言,日志存在的意义十分重大;本文主要是自己整理了关于日志的一些知识点,希望能帮助到需要的人,也希望各位能指出我的错误。
二、日志的作用
①记录运行信息,方便调试
②记录错误信息,方便排查错误
③存储运行记录,方便后期的数据分析
三、日志的主要知识点:三大组件
1.Loggers组件
1.1作用:
设置日志级别,决定什么日志信息应该被输出、什么日志信息应该被忽略。
1.2.分类:
DEBUG 一般情况下,子类中的级别设置会覆盖根root中的logger,且一般子类默认的级别为INFO,所以个人觉得根root中设置拦截级别似乎没什么作用。 1.3.例子: 配置根Logger log4j.rootLogger=[level],appenderName1,appenderName2 注意:根logger具有继承性,他下属的appednerName均继承自他,比如继承了日志拦截级别等,当然,下属也可覆盖掉来着父类的日志拦截级别(Threshold)。如果不想继承,那么设置如下:log4j.additivity.org.apache=false 2.Appenders组件 2.1.作用: 设置日志输出的位置以及其他相关的信息 2.2.语法: (appenderName为日志名,需要在rootlogger中声明或者使用自定义声明,自定义声明具体看指定日志信息输出到指定地方那部分;className输出的类,具体看下面;potion1=value1是其他相关的配置,比如配置输出位置,输出的级别的信息) 2.3.className的相关类 org.apache.log4j.ConsoleAppender(控制台) org.apache.log4j.FileAppender(文件) org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件) org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件) org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 2.4.例子 3.Layout组件 3.1作用: 决定了输出日志的格式 3.2.类型 .org.apache.log4j.HTMLLayout(以HTML表格形式布局); .org.apache.log4j.PatternLayout(可以灵活地指定布局模式); .org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串); .org.apache.log4j.TTCCLayout(包含日志产生的时间、线程和类别等信息); 3.3.输出格式的定义ConversionPattern 符号描述 %r自程序开始后消耗的毫秒数 %t表示日志记录请求生成的线程 %p表示日专语句的优先级 %r与日志请求相关的类别名称 %c日志信息所在的类名 %m%n表示日志信息的内容 3.4.例子 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[VAMS][%d]%p|%m|[%t]%C.%M(%L)%n 三、总结例子(包含指定日志信息输出到指定地方) 1.配置文件 配置文件默认存放在src目录下,名字为log4j.properties 2.简单调用 ★★3.将关于特定类的日志输出到特定的日志文件中 需求:我们想将类A中的日志输出,输出到一个单独的特定文件中 配置: 使用 重点:发挥主要作用的是log4.additivity。用于决定子logger是否继承父logger的appender。如果设置为false,那么子logger的输出只会输出到自己指定的文件/控制台下。而不会输出到父logger指定的文件/控制台下。 以上这篇java启动jar包将日志打印到文本的简单操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。 声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
log4j.appender.appenderName=className
log4j.appender.appenderName.Option1=value1
…
log4j.appender.appenderName.OptionN=valueN
log4j.rootLogger=DEBUG,MINA,file,logFile//注意包含了很多
##mina设置日志发送到控制台
log4j.appender.MINA=org.apache.log4j.ConsoleAppender
log4j.appender.MINA.layout=org.apache.log4j.PatternLayout
log4j.appender.MINA.layout.ConversionPattern=%d{yyyy-MM-ddHH\:mm\:ss,SSS}%-5p%c{1}%x-%m%n
##File设置日志输出到指定大小的文件
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.Threshold=DEBUG//不继承父类的
log4j.appender.file.File=./log/mina.log//路径
log4j.appender.file.MaxFileSize=5120KB//大小
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[VAMS][%d]%p|%m|[%t]%C.%M(%L)%n
##logFile设置日志输出到指定路劲
log4j.appender.logFile=org.apache.log4j.FileAppender
log4j.appender.logFile.Threshold=DEBUG
log4j.appender.logFile.ImmediateFlush=true(表示所有消息都会被立即输出)
log4j.appender.logFile.Append=true(rue表示消息增加到指定文件中,默认就是true)
log4j.appender.logFile.File=./log/log.log4j
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=[%-5p]%d(%r)-->[%t]%l:%m%x%n
publicclassTestLog4j{
publicstaticvoidmain(String[]args){
PropertyConfigurator.configure("D:/Code/conf/log4j.properties");//读取配置文件路径
Loggerlogger=Logger.getLogger(TestLog4j.class);//加载本类
logger.debug("debug");//设置此处debug级别输出的内容
logger.error("error");//设置此处error级别输出的内容
}
}
log4j.logger.signature=debug,signature//自定义输出
log4j.additivity.signature=false//不继承父类
log4j.appender.signature=org.apache.log4j.FileAppender//输出到指定地方
log4j.appender.signature.Append=true//输出不覆盖
log4j.appender.signature.File=./log/signature.log//输出到指定地址
log4j.appender.signature.layout=org.apache.log4j.PatternLayout
log4j.appender.signature.layout.ConversionPattern=%-d{yyyy-MM-ddHH:mm:ss}[%t:%r]-[%p]%m%n
publicvoidtest1(){
Loggerlogger=Logger.getLogger("signature");
logger.info("testinfo");
}