自定义log的类型,并且将其类型放进对应的文件中

#把所有的INFO信息输出到log名字为file当中。
log4j.rootLogger=INFO,file

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

#DatePattern=‘_‘yyyy-MM-dd‘.log‘:每天滚动一次文件,即每天产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下:
#‘.‘yyyy-MM: 每月
#‘.‘yyyy-ww: 每周
#‘.‘yyyy-MM-dd: 每天
#‘.‘yyyy-MM-dd-a: 每天两次
#‘.‘yyyy-MM-dd-HH: 每小时
#‘.‘yyyy-MM-dd-HH-mm: 每分钟  

#输出到控制台,定义了一个stdout,但是没使用到rootLogger中,下面的other将会使用。
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=%r %-5p %d{yyyy-MM-dd HH:mm:ss,SSS} %C{1}:%L - %m%n

### 分日志文件
### log4j.additivity.msgs = false表示不输出到主文件里,即不再 rootLogger 里
#定义继承性的时候,这种类型的没必要再控制台中进行输出。所以没继承stdout这种类型的日志
#logger的那么为msgs的时候输入到conMsgs的配置当中,在代码中Logger.getLogger("msgs"),当写这样的时候会写入文件中
log4j.logger.msgs = INFO,conMsgs
#是否要叠加继承
log4j.additivity.msgs = true
#输入到文件当中
#log4j.appender.conMsgs=org.apache.log4j.RollingFileAppender
log4j.appender.conMsgs=org.apache.log4j.DailyRollingFileAppender
#输出到那个文件中
log4j.appender.conMsgs.File=E:/logs/msgs/msgs.log
#每天生成一个日志文件
log4j.appender.conMsgs.DatePattern=‘.‘yyyy-MM-dd‘.log‘
log4j.appender.conMsgs.layout=org.apache.log4j.PatternLayout
log4j.appender.conMsgs.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ss,SSS} %C{1}:%L - %m%n
#log4j.appender.conMsgs.MaxFileSize=1MB
#log4j.appender.conMsgs.MaxBackupIndex=3

### 分日志文件,记录除le以上2种分日志文件中的其他内容
### log4j.additivity.msgs = false表示不输出到主文件里,即不再 rootLogger 里显示
#这种类型的日志需要在控制台中进行输出,所以继承了stdout
#定义了一个logger的name为other的日志。输出级别是info,输出到stdout(控制台)和otherMsgs这个配置文件的日志文件中
log4j.logger.other = INFO,stdout,otherMsgs
log4j.additivity.other = true
#log4j.appender.otherMsgs=org.apache.log4j.RollingFileAppender
#将其设置成一天产生一个日志文件
log4j.appender.otherMsgs=org.apache.log4j.DailyRollingFileAppender
log4j.appender.otherMsgs.File=e:/logs/other/other.log
#设置每一分钟产生的日志文件的格式
#log4j.appender.otherMsgs.DatePattern=‘.‘yyyy-MM-dd-HH-mm‘.log‘
log4j.appender.otherMsgs.DatePattern=‘.‘yyyy-MM-dd‘.log‘
#log4j.appender.otherMsgs.File=e:/logs/other.log
log4j.appender.otherMsgs.layout=org.apache.log4j.PatternLayout
log4j.appender.otherMsgs.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ss,SSS} %C{1}:%L - %m%n
#log4j.appender.otherMsgs.MaxFileSize=1MB
#log4j.appender.otherMsgs.MaxBackupIndex=2

### 主日志文件,所有的分日志文件内容都会记录在此 ###
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=e:/logs/all/all.log
log4j.appender.file.DatePattern=‘.‘yyyy-MM-dd‘.log‘
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ss,SSS} %c - %m%n
#log4j.appender.file.MaxFileSize=10MB
#log4j.appender.file.MaxBackupIndex=100
时间: 2024-08-07 08:26:41

自定义log的类型,并且将其类型放进对应的文件中的相关文章

Android attrs.xml文件中属性类型format值的格式

"reference" //引用 "color" //颜色 "boolean" //布尔值 "dimension" //尺寸值 "float" //浮点值 "integer" //整型值 "string" //字符串 "fraction" //百分数,比如200% 枚举型的格式: < attr name="orientation&q

自定义的类型放入STL的set中,需要重载自定义类中的“&lt;”符号(转)

在以前学习STL的时候,曾经学到过,如果要将自定义的类型放入到set中的话,就需要重载“<”符号,原因是set是一个有序的集合,集合会按照“<”比较的大小,默认按照从小到大的顺序排列.假设我现在设计如下类型: class MyType { public: int a, b, c; } 这是,为了让MyType类型可以顺利的放进set中,我必须重载“<”,这时问题来了,要如何重载呢?这个类型有三个数据成员,我能不能要求按照a的大小排列,如果a相等的话就随便按照b或者c的大小排列呢?如果近实

swift学习:自定义Log

import UIKit /* 总结:1:let file = (#file as NSString).lastPathComponent,#file获取的是打印所在的文件 的全路径,转成NSString才能调用lastPathComponent获取的是路径最后的.后面的元素,as NSString转成NSString类型 2:let funcName = #function,获取打印所在的方法 3:let lineNum = #line,获取打印所在行数 4:拼接字符串的时候,可以用Strin

TS(6)-- 类型推论、类型兼容性、高级类型

2019-11-09: 学习内容:类型推论.类型兼容性.高级类型 一.类型推论:类型是在哪里如何被推断的 在有些没有明确指出类型的地方,类型推论会帮助提供类型.如:let x = 3;  变量x的类型被推断为数字. 这种推断发生在初始化变量和成员,设置默认参数值和决定函数返回值时.大多数情况下,类型推论是直截了当地. 最佳通用类型:如: let x = [0, 1, null];   两种选择:number 和 null , 计算通用类型算法会考虑所有的候选类型,并给出一个兼容所有候选类型的类型

1.4.2 solr字段类型--(1.4.2.1)字段类型定义和字段类型属性

1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期) (1.4.2.5) 使用枚举字段 (1.4.2.6) 使用外部文件和程序 (1.4.2.7) 字段属性使用案例 字段类型定义和字段类型属性 字段类型元素fieldType包含4个信息的类型:name,class-实现类的名称,analyzer-用于字段类型的分析,字段属性Field. schem

JavaScript基础——引用类型(二)日期类型Date、正则表达式类型RegExp

Date类型 ECMAScript中的Date类型是在早期Java中的java.util.Date类基础上构建的.为此,Date类型使用自UTC(CoordinatedUniversal Time,国际协调时间)1970年1月1日午夜(零时)开始经过的毫秒数来保存日期.在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的285 616年. 要创建一个日期对象,使用new 操作符和Date构造函数即可,如: var now = new Date(); 在调

Android JNI入门第二篇——Java参数类型与本地参数类型对照

前面一篇通过简单的例子介绍了android中JNI的使用.这一篇从基础上了解一些Java参数类型与本地参数类型区别. 1)        java中的返回值void和JNI中的void是完全对应的哦!(仅仅一个而已). 2)        java中的基本数据类型(byte ,short ,int,long,float,double ,boolean,char-8种)在JNI中对应的数据类型只要在前面加上j就对应了(jbyte ,jshort ,jint,jlong,jfloat,jdouble

TS学习随笔(二)-&gt;类型推论,联合类型

这篇内容指南:        -----类型推论  -----联合类型 类型推论 第一篇中我们看了TS的基本使用和基本数据类型的使用,知道了变量在使用的时候都得加一个类型,那我们可不可以不加呢,这个嘛,可以也不可以,为啥这木说呢,各位看官我们上眼瞧一下. 首先我们要来先了解一个概念,类型推论:如果没有明确的指定类型,那么 TypeScript 会依照类型推论(Type Inference)的规则推断出一个类型 例子一: let myFavoriteNumber = 'seven'; myFavo

Resx 文件无效。未能加载 .RESX 文件中使用的类型 System.Collections.Generic.List`1请确保已在项目中添加了必需的引用。

在C#程序编写过程中,会遇到:Resx 文件无效.未能加载 .RESX 文件中使用的类型 System.Collections.Generic.List1`请确保已在项目中添加了必需的引用. 主要原因很可能是使用了类的可序列化的原因,代码如下: [Serializable] public class TimeLineItem { public string Title; public string Content; public TimeLineItem(string content) { th