java启动jar包将⽇志打印到⽂本的简单操作
启动命令:
java -jar weichi-1.0.0.jar
将命令打印到1.log上
java -jar weichi-1.0.0.jar > 1.log
补充知识:Java中⽇志的使⽤(包含指定⽇志信息输出到指定地⽅)
⼀、前⾔
对于我们开发者⽽⾔,⽇志存在的意义⼗分重⼤;本⽂主要是⾃⼰整理了关于⽇志的⼀些知识点,希望能帮助到需要的⼈,也希望各位能指出我的错误。
log4j2不打印日志⼆、⽇志的作⽤
①记录运⾏信息,⽅便调试
②记录错误信息,⽅便排查错误
③存储运⾏记录,⽅便后期的数据分析
三、⽇志的主要知识点:三⼤组件
1.Loggers 组件
1.1作⽤:
设置⽇志级别,决定什么⽇志信息应该被输出、什么⽇志信息应该被忽略。
1.2.分类:
DEBUG < INFO< WARN < ERROR < FATAL
⼀般情况下,⼦类中的级别设置会覆盖根root中的logger,且⼀般⼦类默认的级别为INFO,所以个⼈觉得根root中设置拦截级别似乎没什么作⽤。
1.3.例⼦:
配置根Logger
注意:根logger 具有继承性,他下属的appednerName均继承⾃他,⽐如继承了⽇志拦截级别等,当然,下属也可覆盖掉来着⽗类的⽇志拦截级别(Threshold)。如果不想继承,那么设置如下:apache=false
2.Appenders 组件
2.1.作⽤:
设置⽇志输出的位置以及其他相关的信息
2.2.语法:
(appenderName 为⽇志名,需要在rootlogger中声明或者使⽤⾃定义声明,⾃定义声明具体看指定⽇志信息输出到指定地⽅那部分;className输出的类,具体看下⾯;potion1=value1是其他相关的配置,⽐如配置输出位置,输出的级别的信息)
log4j.appender.appenderName = className
log4j.appender.appenderName.Option1 = value1
…
log4j.appender.appenderName.OptionN = valueN
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.log4 j.HTMLLayout(以HTML表格形式布局);
. org.apache.log4 j.PatternLayout(可以灵活地指定布局模式);
. org.apache.log4 j.SimpleLayout(包含⽇志信息的级别和信息字符串);
. org.apache.log4 j.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
## mina 设置⽇志发送到控制台
log4j.appender.MINA=org.apache.log4j.ConsoleAppender
log4j.appender.MINA.layout=org.apache.log4j.PatternLayout
log4j.appender.MINA.layout.ConversionPattern=%d{yyyy-MM-dd HH\: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
2.简单调⽤
public class TestLog4j {
public static void main(String[] args) {
Logger logger = Logger(TestLog4j. class ); //加载本类
logger.debug( " debug " ); //设置此处debug级别输出的内容
<( " error " ); //设置此处error级别输出的内容
}
}
★★3.将关于特定类的⽇志输出到特定的⽇志⽂件中
需求:我们想将类 A 中的⽇志输出,输出到⼀个单独的特定⽂件中
配置:
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-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
使⽤
public void test1(){
Logger logger = Logger("signature");
logger.info("testinfo");
}
重点:发挥主要作⽤的是 log4.additivity。⽤于决定⼦logger是否继承⽗logger的appender。如果设置为false,那么⼦logger的输出只会输出到⾃⼰指定的⽂件/控制台下。⽽不会输出到⽗logger指定的⽂件/控制台下。
以上这篇java启动jar包将⽇志打印到⽂本的简单操作就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论