log4j与log4j.properties的配置说明

合集下载

log4j 标准

log4j 标准

log4j 标准
Log4j是一个Java日志框架,它提供了一种灵活的方式来记录应用程序的
日志信息。

以下是Log4j的标准:
1. 配置文件:Log4j使用一个配置文件来定义日志记录的行为。

这个配置文件可以是XML、properties或YAML格式。

在配置文件中,可以指定日志级别、输出目的地(例如控制台、文件、数据库等)以及其他相关设置。

2. Logger对象:Log4j使用Logger对象来记录日志。

每个Logger对象
都有一个名称,可以通过继承关系组织成层次结构。

Logger对象可以记录
不同级别的日志信息,包括DEBUG、INFO、WARN、ERROR和FATAL。

3. Appender对象:Appender对象定义了日志信息的输出目的地。

例如,可以将日志信息输出到控制台、文件、数据库或电子邮件等。

每个Logger
对象可以关联多个Appender对象,以便将日志信息发送到不同的目的地。

4. 布局和格式化程序:Log4j使用布局或格式化程序来控制日志信息的输出格式。

布局或格式化程序可以将Logger对象记录的日志信息转换成所需的格式,并将其输出到指定的目的地。

5. 日志级别:Log4j使用不同的日志级别来控制日志信息的输出。

这些级别从低到高分别是DEBUG、INFO、WARN、ERROR和FATAL。

通过设置适当的级别,可以过滤掉不需要的日志信息,以便更好地控制应用程序的性能和输出。

总之,Log4j提供了一种灵活、可配置和可扩展的日志记录机制,适用于各种规模的应用程序开发。

附4:“票付通”业务参与者接入端信息系统验证标准

附4:“票付通”业务参与者接入端信息系统验证标准

附4
“票付通”业务参与者接入端信息系统验证标准
(适用于使用ODPS前置机参与者)
(V1.0)
机构名称(公章):
验证时间:
本表中“是否符合”、“备注”需参与机构填写,其中“备注”需根据验证项的“验证标准”及“验证方法”写明参与者内部系统和前置机具体的实现情况。

一、网络环境验证
机构名:________________
说明:验证范围为“票付通”业务服务器(前置)运行的网络系统环境,包括局域网,与上海票交所互联的路由器、防火墙以及其他网络安全设备。

第 1 页 / 共 12 页
第 2 页 / 共 10 页
二、主机与数据安全验证
机构名:________________
第 2 页 / 共 10 页
第 2 页 / 共 10 页
三、直连前置机系统环境验证(有数据库)
机构名:________________
第 2 页 / 共 10 页
第 2 页 / 共 10 页
第 2 页 / 共 10 页
三、直连前置机系统环境验证(无数据库)
机构名:________________
第 2 页 / 共 10 页
第 2 页 / 共 10 页
第 2 页 / 共 10 页。

log4j2中文手册

log4j2中文手册

Log4j2使用手册一.Log4j2介绍Log4j1.x 被广泛应用于应用程序,但是近年发展明显放缓,因为要维持较老java版本的使用,使得log4j1.x 的发展更困难。

而作为其代替品,slf4j/logback 做出了许多必要改进,为什么还需要log4j2? 主要有以下几个原因: (1)Log4j2被设计用作审计日志框架, log4j 和logback 在重载配置时,都会丢失日志时间,而log4j2不会。

Logback中appenders中的异常对于应用来说是不可见的,log4j2可以配置异常向应用渗透。

(2)Log4j2 包含基于LMAX Disruptor library的下一代无锁Asynchronous Loggers ,在多线程环境下,Asynchronous Loggers 相比slf4j / logback 提高了10倍以上的吞吐量,并且有着更低的延时。

(3)Log4j2的插件机制,使得在不需要修改框架的情况下,通过添加 Appenders, Filters, Layouts, Lookups 轻松扩展框架。

(4)简单的插件配置,无需指定具体类名即可在configuration 中配置插件。

(5)支持自定义日志级别,可以在代码或者configuration 中自定义日志级别。

(6)支持lambda表达式,java8的应用可以在请求日志级别启用时使用lambda表达式懒构建一个日志消息,不需要显示的日志级别检查,使得代码更简洁。

(7)支持消息对象,消息允许支持有趣和复杂的结构,传递到日志记录系统,并且可以高效的操作。

用户可以自由创建消息类型和编写Layouts, Filters and Lookups 来操作这些消息。

(8)Log4j1在Appenders 上支持Filters。

logback增加了TurboFilters,允许在日志事件在处理前进行过滤。

Log4j2可以配置Filters 在Logger后者Appender 前运行。

log4j2配置文件log4j2.xml解析

log4j2配置文件log4j2.xml解析

log4j2配置⽂件log4j2.xml解析⼀、背景最近由于项⽬的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之⽽来的slf4j整合log4j的配置(使⽤Slf4j集成Log4j2构建项⽬⽇志系统的完美解决⽅案)以及log4j2配置⽂件的详解,就需要我们来好好聊⼀聊了。

本⽂就专门来讲解下log4j2.xml配置⽂件的各项标签的意义。

⼆、配置全解1.关于配置⽂件的名称以及在项⽬中的存放位置log4j 2.x版本不再⽀持像1.x中的.properties后缀的⽂件配置⽅式,2.x版本配置⽂件后缀名只能为”.xml”,”.json”或者”.jsn”.系统选择配置⽂件的优先级(从先到后)如下:(1).classpath下的名为log4j2-test.json 或者log4j2-test.jsn的⽂件.(2).classpath下的名为log4j2-test.xml的⽂件.(3).classpath下名为log4j2.json 或者log4j2.jsn的⽂件.(4).classpath下名为log4j2.xml的⽂件.我们⼀般默认使⽤log4j2.xml进⾏命名。

如果本地要测试,可以把log4j2-test.xml放到classpath,⽽正式环境使⽤log4j2.xml,则在打包部署的时候不要打包log4j2-test.xml即可。

2.缺省默认配置⽂件<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN"><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console></Appenders><Loggers><Root level="error"><AppenderRef ref="Console"/></Root></Loggers></Configuration>3.配置⽂件节点解析(1).根节点Configuration有两个属性:status和monitorinterval,有两个⼦节点:Appenders和Loggers(表明可以定义多个Appender和Logger). status⽤来指定log4j本⾝的打印⽇志的级别.monitorinterval⽤于指定log4j⾃动重新配置的监测间隔时间,单位是s,最⼩是5s.(2).Appenders节点,常见的有三种⼦节点:Console、RollingFile、File.Console节点⽤来定义输出到控制台的Appender.name:指定Appender的名字.target:SYSTEM_OUT 或 SYSTEM_ERR,⼀般只设置默认:SYSTEM_OUT.PatternLayout:输出格式,不设置默认为:%m%n.File节点⽤来定义输出到指定位置的⽂件的Appender.name:指定Appender的名字.fileName:指定输出⽇志的⽬的⽂件带全路径的⽂件名.PatternLayout:输出格式,不设置默认为:%m%n.RollingFile节点⽤来定义超过指定⼤⼩⾃动删除旧的创建新的的Appender.name:指定Appender的名字.fileName:指定输出⽇志的⽬的⽂件带全路径的⽂件名.PatternLayout:输出格式,不设置默认为:%m%n.filePattern:指定新建⽇志⽂件的名称格式.Policies:指定滚动⽇志的策略,就是什么时候进⾏新建⽇志⽂件输出⽇志.TimeBasedTriggeringPolicy:Policies⼦节点,基于时间的滚动策略,interval属性⽤来指定多久滚动⼀次,默认是1 hour。

Mybatis的Log4j日志输出问题-以及有关日志的所有问题

Mybatis的Log4j日志输出问题-以及有关日志的所有问题

Mybatis的Log4j⽇志输出问题-以及有关⽇志的所有问题使⽤Mybatis的时候,有些时候能输出(主要是指sql,参数,结果)⽇志。

有些时候就不能。

⽆法输出⽇志的时候,⽆论怎么配置log4j,不管是properties的还是xml的,都不起作⽤。

有些时候,我们没做什么配置就能输出⽇志....这是⼀个让⽆数⼈烦躁的问题。

其实解决问题很容易(我过了这么久才解决,以前都⽤拦截器输出)。

这是⼀个普⼤喜奔的⽇⼦,让我们⼀起来看看如何解决mybatis的⽇志问题。

为什么说这个问题很容易解决呢?因为mybatis的⽂档写的很清楚。

为什么我们都没找到解决办法呢?因为即使看过⽂档的⼈,也未必去看Logging这⼀节。

但是这⼀节正是解决问题的关键。

已经等不及的⼩伙伴们可以直接去这⾥看⽂档:提醒最常⽤的⽅法不再这个链接中,但是这个⽂档提供了对log4j的详细配置。

本⽂下⾯的内容⼤部分是这个⽂档的Copy。

Mybatis内置的⽇志⼯⼚提供⽇志功能,具体的⽇志实现有以下⼏种⽅式:SLF4JApache Commons LoggingLog4j 2Log4jJDK logging具体选择哪个⽇志实现由MyBatis的内置⽇志⼯⼚确定。

它会使⽤最先找到的(按上⽂列举的顺序查找)。

如果⼀个都未找到,⽇志功能就会被禁⽤。

不少应⽤服务器的classpath中已经包含Commons Logging,如Tomcat和WebShpere,所以MyBatis会把它作为具体的⽇志实现。

记住这点⾮常重要。

这意味着,在诸如 WebSphere的环境中——WebSphere提供了Commons Logging的私有实现,你的Log4J配置将被忽略。

这种做法不免让⼈悲摧,MyBatis怎么能忽略你的配置呢?事实上,因Commons Logging已经存在,按优先级Log4J⾃然就被忽略了!不过,如果你的应⽤部署在⼀个包含Commons Logging的环境,⽽你⼜想⽤其他的⽇志框架,你可以根据需要调⽤如下的某⼀⽅法:eSlf4jLogging();eLog4JLogging();eJdkLogging();eCommonsLogging();eStdOutLogging();如果的确需要调⽤以上的某个⽅法,请在调⽤所有其他MyBatis⽅法前调⽤它。

idea log4j插件用法

idea log4j插件用法

1. 什么是Log4j插件Log4j是一个开源的日志记录框架,广泛应用于Java项目中。

Log4j插件是用于在开发过程中方便地使用Log4j框架的工具,能够帮助开发人员快速配置和管理日志记录功能。

2. Log4j插件的安装在使用Log4j插件之前,首先需要在开发环境中安装Log4j插件。

可以通过Maven或手动下载Jar包的方式将Log4j插件导入到项目中,然后在项目配置文件中声明Log4j插件的依赖关系。

3. Log4j插件的配置在项目中成功导入Log4j插件后,需要对插件进行配置。

首先需要创建一个Log4j配置文件(通常命名为log4j.properties或log4j.xml),在配置文件中指定日志记录的格式、输出目标、日志级别等参数。

4. 使用Log4j插件记录日志配置完成后,开发人员可以通过调用Log4j插件提供的API来记录日志。

开发人员可以在代码中插入日志记录语句,指定日志的级别(如DEBUG、INFO、WARN、ERROR等),以及日志的内容。

通过Log4j插件记录的日志可以输出到控制台、文件、数据库等不同的目标。

5. Log4j插件的优点Log4j插件提供了丰富的日志记录功能,可以根据需要灵活地配置日志记录的方式和输出目标。

Log4j插件具有较高的性能和稳定性,适用于各种规模的项目。

另外,Log4j插件支持多种日志级别,开发人员可以根据实际需要精细地控制日志的记录和输出。

6. Log4j插件的注意事项在使用Log4j插件的过程中,需要注意配置文件的正确指定和日志记录语句的合理使用。

对于不同的项目和需求,需要仔细选择适合的日志记录方式和输出目标,以便保证日志记录的准确性和便捷性。

7. 结语Log4j插件是一个优秀的日志记录工具,能够帮助开发人员轻松地实现日志记录的功能。

通过仔细的配置和合理的使用,开发人员可以充分发挥Log4j插件的优势,为项目提供有效的日志管理和追踪功能。

希望本文对大家了解Log4j插件的用法有所帮助。

log4j使用教程详解(怎么使用log4j2)

log4j使用教程详解(怎么使用log4j2)

log4j使⽤教程详解(怎么使⽤log4j2)1. 去官⽅下载log4j 2,导⼊jar包,基本上你只需要导⼊下⾯两个jar包就可以了(xx是乱七⼋糟的版本号):log4j-core-xx.jarlog4j-api-xx.jar2. 导⼊到你的项⽬中:这个就不说了。

3. 开始使⽤:我们知道,要在某个类中使⽤log4j记录⽇志,只需要申明下⾯的成员变量(其实不⼀定要是成员变量,只是为了⽅便调⽤⽽已)复制代码代码如下:private static Logger logger = LogManager.getLogger(MyApp.class.getName());⾥getLogger有⼀个参数指定的是这个logger的名称,这个名称在配置⽂件⾥⾯可是有需要的,这个待会⼉再说。

声明了Logger对象,我们就可以在代码中使⽤他了。

4. ⽇志的级别:我们现在要调⽤logger的⽅法,不过在这个Logger对象中,有很多⽅法,所以要先了解log4j的⽇志级别,log4j规定了默认的⼏个级别:trace<debug<info<warn<error<fatal等。

这⾥要说明⼀下:1)级别之间是包含的关系,意思是如果你设置⽇志级别是trace,则⼤于等于这个级别的⽇志都会输出。

2)基本上默认的级别没多⼤区别,就是⼀个默认的设定。

你可以通过它的API⾃⼰定义级别。

你也可以随意调⽤这些⽅法,不过你要在配置⽂件⾥⾯好好处理了,否则就起不到⽇志的作⽤了,⽽且也不易读,相当于⼀个规范,你要完全定义⼀套也可以,不⽤没多⼤必要。

3)这不同的级别的含义⼤家都很容易理解,这⾥就简单介绍⼀下:trace:是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低⽇志级别不让他输出。

debug:调试么,我⼀般就只⽤这个作为最低级别,trace压根不⽤。

log4j中文手册

log4j中文手册

Log4j手册文档版本:1.1编者:陈华联系方式:clinker@发布日期:2006年4月5日1. 简介 (1)1. 简介 (3)1.1 概述 (3)1.2 主要组件 (3)2. Logger (4)2.1 层次结构 (4)2.2 输出级别 (5)3. Appenders (7)3.1 概念说明 (7)3.2 Appender的配置 (7)3.3 Appender的添加性 (8)4. Layouts (8)4.1 概念说明 (8)4.2 Layout的配置 (9)5. 配置 (10)6. 默认的初始化过程 (13)7. 配置范例 (14)7.1 Tomcat (14)8. Nested Diagnostic Contexts (14)9. 优化 (15)9.1 日志为禁用时,日志的优化 (15)9.2 当日志状态为启用时,日志的优化 (16)9.3 日志信息的输出时,日志的优化 (16)10. 总结 (16)11. 附录 (17)11.1 参考文档 (17)11.2 比较全面的配置文件 (17)11.3 日志乱码的解决 (19)1. 简介1.1 概述程序开发环境中的日志记录是由嵌入在程序中以输出一些对开发人员有用信息的语句所组成。

例如,跟踪语句(trace),结构转储和常见的System.out.println或printf调试语句。

log4j提供分级方法在程序中嵌入日志记录语句。

日志信息具有多种输出格式和多个输出级别。

使用一个专门的日志记录包,可以减轻对成千上万的System.out.println语句的维护成本,因为日志记录可以通过配置脚本在运行时得以控制。

log4j维护嵌入在程序代码中的日志记录语句。

通过规范日志记录的处理过程,一些人认为应该鼓励更多的使用日志记录并且获得更高程度的效率。

1.2 主要组件Log4j有三个主要组件: loggers、appenders和layouts。

这三个组件协同工作,使开发人员能够根据消息类型和级别来记录消息,并且在程序运行期控制消息的输出格式位置。

Log4j2.xml配置指定某个方法单独文件打印日志

Log4j2.xml配置指定某个方法单独文件打印日志

Log4j2.xml配置指定某个⽅法单独⽂件打印⽇志1.Log4j2.xml配置⽂件信息说明:同⼀个RollingFile 可以配置多个Logger,实现多个class打印到同⼀个⽇志⽂件<?xml version="1.0" encoding="UTF-8"?><!--Configuration后⾯的status,这个⽤于设置log4j2⾃⾝内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出--><!--monitorInterval:Log4j能够⾃动检测修改配置⽂件和重新配置本⾝,设置间隔秒数--><configuration monitorInterval="5"><!--⽇志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --><!--变量配置--><Properties><!-- 格式化输出:%date表⽰⽇期,%thread表⽰线程名,%-5level:级别从左显⽰5个字符宽度 %msg:⽇志消息,%n是换⾏符--><!-- %logger{36} 表⽰ Logger 名字最长36个字符 --><property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/><!-- 定义⽇志存储的路径 --><property name="FILE_PATH" value="logs"/><property name="FILE_NAME" value="merger-admin"/></Properties><appenders><console name="Console" target="SYSTEM_OUT"><!--输出⽇志的格式--><PatternLayout pattern="${LOG_PATTERN}"/><!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--><ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/></console><!--⽂件会打印出所有信息,这个log每次运⾏程序会⾃动清空,由append属性决定,适合临时测试⽤--><File name="Filelog" fileName="${FILE_PATH}/test.log" append="false"><PatternLayout pattern="${LOG_PATTERN}"/></File><!-- 这个会打印出所有的info及以下级别的信息,每次⼤⼩超过size,则这size⼤⼩的⽇志会⾃动存⼊按年份-⽉份建⽴的⽂件夹下⾯并进⾏压缩,作为存档--> <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/info.log" filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz"><!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--><ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="${LOG_PATTERN}"/><Policies><!--interval属性⽤来指定多久滚动⼀次,默认是1 hour--><TimeBasedTriggeringPolicy interval="1"/><SizeBasedTriggeringPolicy size="10MB"/></Policies><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同⼀⽂件夹下7个⽂件开始覆盖--><DefaultRolloverStrategy max="15"/></RollingFile><!-- 这个会打印出所有的warn及以下级别的信息,每次⼤⼩超过size,则这size⼤⼩的⽇志会⾃动存⼊按年份-⽉份建⽴的⽂件夹下⾯并进⾏压缩,作为存档--> <RollingFile name="RollingFileWarn" fileName="${FILE_PATH}/warn.log" filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz"><!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--><ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="${LOG_PATTERN}"/><Policies><!--interval属性⽤来指定多久滚动⼀次,默认是1 hour--><TimeBasedTriggeringPolicy interval="1"/><SizeBasedTriggeringPolicy size="10MB"/></Policies><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同⼀⽂件夹下7个⽂件开始覆盖--><DefaultRolloverStrategy max="15"/></RollingFile><!-- 这个会打印出所有的error及以下级别的信息,每次⼤⼩超过size,则这size⼤⼩的⽇志会⾃动存⼊按年份-⽉份建⽴的⽂件夹下⾯并进⾏压缩,作为存档--> <RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log" filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz"><!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--><ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="${LOG_PATTERN}"/><Policies><!--interval属性⽤来指定多久滚动⼀次,默认是1 hour--><TimeBasedTriggeringPolicy interval="1"/><SizeBasedTriggeringPolicy size="10MB"/></Policies><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同⼀⽂件夹下7个⽂件开始覆盖--><DefaultRolloverStrategy max="15"/></RollingFile><!--单独记录某个class的⽇志⽂件--><RollingFile name="RollingFileFtp" fileName="${FILE_PATH}/ftp_log.log" filePattern="${FILE_PATH}/ftp_log-INFO-%d{yyyy-MM-dd}_%i.log.gz"><PatternLayout pattern="${LOG_PATTERN}"/><Policies><!--interval属性⽤来指定多久滚动⼀次,默认是1 hour--><TimeBasedTriggeringPolicy interval="1"/><SizeBasedTriggeringPolicy size="20MB"/></Policies><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同⼀⽂件夹下7个⽂件开始覆盖--><DefaultRolloverStrategy max="15"/></RollingFile></appenders><!--Logger节点⽤来单独指定⽇志的形式,⽐如要为指定包下的class指定不同的⽇志级别等。

Shiro开发配置说明

Shiro开发配置说明

Shiro1.1.0开发配置文档建立一个java应用程序项目,项目及文件结构如图:注意以下几点:1、导入与Shiro相关的库,如图所示几个jar包,如运行时出现log4j相关的错误,则可能是log4j相关的包不正确;2、shiro.ini文件的路径问题,应放在项目根路径下,内容为:view plain1.[users]2.zwx=zavens3、log4j.properties文件为可选文件,建议自己设置log4j属性,内容为:view plain1.log4j.rootLogger=TRACE, stdout2.3.log4j.appender.stdout=org.apache.log4j.DailyRollingFileAppender4.log4j.appender.stdout.File=C:/log4j/log.txt5.log4j.appender.stdout.Encoding=GBK6.log4j.appender.stdout.Threshold=DEBUG7.log4j.appender.stdout.DatePattern='.'yyyy-MM-ddyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n10..sf.ehcache=WARN.apache=WARN.quartz=WARN.apache.shiro=TRACE.apache.shiro.util.ThreadContext=INFO4、shiroAp.java内容:view plain1.package shiroap;2.3.import java.io.File;4.import java.io.IOException;5.import org.apache.shiro.SecurityUtils;6.import ernamePasswordToken;7.import org.apache.shiro.config.IniSecurityManagerFactory;8.import org.apache.shiro.mgt.SecurityManager;9.import org.apache.shiro.subject.Subject;10.import org.apache.shiro.util.Factory;11.12.public class ShiroAp {13.14.public static void main(String[] args) throws IOException {15. Factory<SecurityManager> factory = new IniSecurityManagerFactory("shiro.ini");16. SecurityManager sm=factory.getInstance();17. SecurityUtils.setSecurityManager(sm);18. Subject sub=SecurityUtils.getSubject();19.if(sub.isAuthenticated()){20. System.out.println("已登录,SESSION:" + sub.getSession());21. }22. System.out.println("未登录,SESSION:" + sub.getSession());23. UsernamePasswordToken at=new UsernamePasswordToken ("zwx","zavens");24.try{25. sub.login(at);26. }catch(Exception e){27. System.out.println("验证没通过!");28. }29.if(sub.isAuthenticated()){30. System.out.println("已登录,SESSION:" + sub.getSession());31. }32. }33.}Shiro是一个简单、开源且强大的安全管理框架,是实现单点登录的理想选择,常被应用于java web应用中。

java日志文件log4j.properties配置详解

java日志文件log4j.properties配置详解

java⽇志⽂件log4j.properties配置详解⼀、Log4j配置第⼀步:加⼊log4j-1.2.8.jar到lib下。

第⼆步:在CLASSPATH下建⽴log4j.properties。

内容如下:放在src下的话就不⽤配置否则得去web.xml⾥⾯配置⼀个Listener参考:log4j.rootCategory=INFO, stdout , Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%nlog4j.appender.R=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.R.File=D:\\Tomcat 5.5\\logs\\qc.logyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d-[TS] %p %t %c - %m%n.neusoft=DEBUG.opensymphony.oscache=ERROR.sf.navigator=ERRORmons=ERROR.apache.struts=WARN.displaytag=ERROR.springframework=DEBUG.ibatis.db=WARN.apache.velocity=FATAL.canoo.webtest=WARN.hibernate.ps.PreparedStatementCache=WARN.hibernate=DEBUG.logicalcobwebs=WARNlog4j.rootCategory=INFO, stdout , Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%nlog4j.appender.R=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.R.File=D:\\Tomcat 5.5\\logs\\qc.logyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d-[TS] %p %t %c - %m%n.neusoft=DEBUG.opensymphony.oscache=ERROR.sf.navigator=ERRORmons=ERROR.apache.struts=WARN.displaytag=ERROR.springframework=DEBUG.ibatis.db=WARN.apache.velocity=FATAL.canoo.webtest=WARN.hibernate.ps.PreparedStatementCache=WARN.hibernate=DEBUG.logicalcobwebs=WARN第三步:相应的修改其中属性,修改之前就必须知道这些都是⼲什么的,在第⼆部分讲解。

log4j教程

log4j教程

Log4j学习笔记一、log4j的简介1、为什么使用日志◆开发阶段使用日志:发现程序的问题,排错◆产品阶段使用日志:记录运行的状况,发现bug并解决2、System.out.println的局限性◆不能在运行时打开或关闭打印功能◆不能指定选择包或类◆不能输出分级的信息◆只能输出文本信息,不能保存到文件或数据库◆不能改变输出的位置,只能打印到屏幕3、log4j的简介◆log4j是当前最流行的java日志处理框架◆Apache的子项目◆开源软件二、log4j的下载和安装/log4j◆log4j有3个版本:1.2 最常用的版本;1.3 已终止的版本;2.0 实验型的版本◆因此,我们下载log4j 1.2 ,点击以上”log4j”菜单,在弹出页面的左上角点击”download”,下载对应的log4j压缩包(例如:apache-log4j-1.2.16.zip),然后解压(最好将所有相关类库统一存放在一个目录下,例如:d:\javalib)◆将解压后的log4j-1.2.16.jar文件添加到当前项目的classpath中。

三、log4j的基本使用import org.apache.log4j.*;public class HelloLog4j{private static Logger logger=Logger.getLogger(HelloLog4j.class);public static void main(String [] args){logger.debug(“this is the main method”);(“welcome to first log4j”);logger.error(“This is an error message”)}}运行这个例子,需要log4j.properties,log4j.properties的配置如下:log4j.rootLogger=debug,appender1 //设定log4j的级别和appenderlog4j.appender.appender1=org.apache.log4j.ConsoleAppender//appender的类型(终端)yout=org.apache.log4j.TTCCLayout //样式(普通TTCC)log4j.rootLogger=info.appender2 //级别为infolog4j.appender.appender2=org.apache.log4j.FileAppender //appender保存到文件log4j.appender.appender2.File=c:/log4j.log 或c:/log4j.htm //文件名(可以是html)yout=org.apache.log4j.TTCCLayout或HTMLLayout 可以使用HTML样式四、log4j的核心log4j的核心由以下4个部件组成:⏹Logger:完成日志信息的处理⏹Appender:设置日志信息的去向⏹Layout:设置日志信息的输出样式⏹配置文件:配置以上信息(log4j.properties或log4j.xml,名称可以改变)1、Logger◆Logger可以定义输出的层次和决定信息的输出级别(怎样的信息可以输出)◆Logger输出的信息主要有以下8种:All,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF我们主要使用:DEBUG,INFO,WARN,ERROR4种◆Logger输出信息的级别:All<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF◆如果我们指定了输出的级别,则只能输出大于等于指定级别的信息,例如:我们指定输出级别为:INFO,则只能输出INFO ,W ARN,ERROR,FATAL,OFF级别的信息◆在程序中,我们可以使用Logger定义的方法进行对应级别信息的输出:logger.debug(“x=”+x);(“System started at ”+new Date());logger.warn(“server down - returning”);logger.error(“can not access server”,e);2、Appender◆Appender可以定义为日志添加器,可以指定将日志信息输出到哪里。

springboot的logback.xml配置和日志记录

springboot的logback.xml配置和日志记录

springboot的logback.xml配置和⽇志记录最近在研究springboot的⽇志,所以记录⼀下,做⼀下总结。

⼏篇关于⽇志的⽂章:介绍⽇志:记录⽇志:⽇志,通常不会在需求阶段作为⼀个功能单独提出来,也不会在产品⽅案中看到它的细节。

但是,这丝毫不影响它在任何⼀个系统中的重要的地位。

为了保证服务的⾼可⽤,发现问题⼀定要即使,解决问题⼀定要迅速,所以⽣产环境⼀旦出现问题,预警系统就会通过邮件、短信甚⾄电话的⽅式实施多维轰炸模式,确保相关负责⼈不错过每⼀个可能的bug。

预警系统判断疑似bug⼤部分源于⽇志。

⽐如某个微服务接⼝由于各种原因导致频繁调⽤出错,此时调⽤端会捕获这样的异常并打印ERROR级别的⽇志,当该错误⽇志达到⼀定次数出现的时候,就会触发报警。

try {调⽤某服务} catch(Exception e) {LOG.error("错误信息", e);}所以⽇志⾄关重要,这篇就来介绍下在Spring Boot如何配置⽇志。

Spring Boot默认⽇志系统Spring Boot默认使⽤LogBack⽇志系统,如果不需要更改为其他⽇志系统如Log4j2等,则⽆需多余的配置,LogBack默认将⽇志打印到控制台上。

1、如果要使⽤LogBack,原则上是需要添加dependency依赖的<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></dependency>但是因为新建的Spring Boot项⽬⼀般都会引⽤spring-boot-starter或者spring-boot-starter-web,⽽这两个起步依赖中都已经包含了对于spring-boot-starter-logging的依赖,所以,⽆需额外添加依赖,配置logback-spring.xml就可以了。

天地图数据解决方案

天地图数据解决方案

天地图数据解决方案捷泰政府事业部产品支持部2013年9月标题1概述“天地图”是国家地理信息公共服务平台公众版成果,是由国家测绘局主导建设的为公众、企业提供权威、可信、统一地理信息服务的大型互联网地理信息服务网站,旨在使测绘成果更好地服务大众。

运行于互联网、移动通信网等公共网络,以门户网站和服务接口两种形式向公众、企业、专业部门、政府部门提供24小时不间断“一站式”地理信息服务。

各类用户可以通过“天地图”的门户网站进行基于地理位置的信息浏览、查询、搜索、量算,以及路线规划等各类应用;也可以利用服务接口调用“天地图”的地理信息服务,并利用编程接口将“天地图”的服务资源嵌入到已有的各类应用系统(网站)中,并以“天地图”的服务为支撑开展各类增值服务与应用,从而有效缓解地理信息资源开发利用中技术难度大、建设成本高、动态更新难等突出问题。

“天地图”的目的在于促进地理信息资源共享和高效利用,提高测绘地理信息公共服务能力和水平,改进测绘地理信息成果的服务方式,更好地满足国家信息化建设的需要,为社会公众的工作和生活提供方便。

在各省市“天地图”的构建过程中,Esri中国(北京)信息技术有限公司针对整个平台服务的搭建提供了相应的解决方案,不仅形成了一套完全符合电子地图规范的地图制图模板,也提供了一套符合规范的服务接口以便于对接到天地图主节点,因此本文就整个天地图数据服务的构建提供说明。

北京捷泰天域科技有限公司|[天地图数据解决方案]2天地图数据解决方案流程天地图数据解决方案电子地图制作数据预处理格式转换、数据整合坐标转换、数据集构建数据分层、属性结构电子地图配图数据分类符号渲染配图优化制作缓存服务发布制作缓存服务接口WMTS ArcGIS9.3.1./10.0ArcGIS10.1WFS-GCSW3电子地图制作3.1天地图数据规范地理实体数据及电子地图数据规范详见:《CH/Z9010-2011地理信息公共服务平台地理实体与地名地址数据规范》《地理信息公共服务平台电子地图数据规范CH/Z9011—2011》《1:400万-1:5万地理实体数据整合技术要求》(20100201:试行稿)3.2电子地图配图及缓存进行电子地图制作与服务发布主要包括三个步骤:前期数据处理、电子地图配图和地图服务发布。

slf4j+log4j2的配置

slf4j+log4j2的配置

slf4j+log4j2的配置昨天⾃⼰测试了⼀下slf4j+log4j2的配置,可以正常使⽤,虽然配置⼗分简单,但好记性不如烂笔头,想想还是记录下来吧。

运⾏的环境:jdk1.7、tomcat7、Maven的web项⽬1.在新建的maven项⽬的pom⽂件中添加jar包依赖(依赖代码在步骤末尾):需要添加依赖的jar包有:slf4j的api接⼝包:slf4j-apilog4j2的核⼼包:log4j-corelog4j2的api接⼝包:log4j-apislf4j对应log4j2⽇志框架的驱动包:log4j-slf4j-impllog4j2的异步⽇志功能包:com.lmax.disruptor解决web项⽬log4j可能出现警告的jar包:log4j-web2.配置log4j2.xml⽇志配置⽂件(⽇志配置⽂件内容放在步骤末尾):·⽇志配置⽂件默认读取路径为src/main/resource·若⽂件放置在默认读取路径下则⽆需配置读取路径·若⽂件放置到其他路径下则需要在web.xml中设置⽇志配置⽂件的读取路径,代码如下:<context-param><param-name>log4jConfiguration</param-name><param-value>classpath:log4j2.xml</param-value></context-param>3.在代码中使⽤⽇志功能:1 import org.slf4j.Logger;2 import org.slf4j.LoggerFactory;34 public class logTest {56 // 通过slf4j接⼝创建Logger对象7 private static final Logger logger = LoggerFactory.getLogger(logTest.class);89 public static void main(String[] args) {10 ("this is info");11 logger.error("this is error");12 }13 }运⾏效果:关于⽇志配置⽂件的详细说明请参考,以下是pom.xml需要加⼊的jar包依赖以及⽇志配置⽂件log4j2.xml内容⽰例:pom.xml需要加⼊的jar包依赖:<properties><!-- jar包版本设置 --><slf4j.version>1.7.21</slf4j.version><log4j.version>2.11.0</log4j.version></properties><dependencies><!-- 导⼊slf4j的接⼝包以及对应⽇志框架的驱动包 --><!-- https:///artifact/org.slf4j/slf4j-api --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><!--⽤于slf4j与log4j2保持桥接 --><!-- https:///artifact/org.apache.logging.log4j/log4j-slf4j-impl --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><scope>runtime</scope><version>${log4j.version}</version></dependency><!-- 导⼊⽇志框架核⼼包与接⼝包 --><!-- https:///artifact/org.apache.logging.log4j/log4j-core --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><scope>runtime</scope><version>${log4j.version}</version></dependency><!-- https:///artifact/org.apache.logging.log4j/log4j-api --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>${log4j.version}</version></dependency><!--⽤于解决web环境下关闭服务器时可能出现的log4j线程⽆法及时关闭的warn,web⼯程需要包含log4j-web,⾮web⼯程不需要 --> <!-- https:///artifact/org.apache.logging.log4j/log4j-web --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId><scope>runtime</scope><version>${log4j.version}</version></dependency><!--使⽤log4j2的AsyncLogger时需要包含disruptor --><!-- https:///artifact/com.lmax/disruptor --><dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><scope>runtime</scope><version>3.4.2</version></dependency></dependencies>⽇志配置⽂件内容⽰例:1<?xml version="1.0" encoding="UTF-8"?>23<!--4⽇志说明:56(1)请根据实际情况配置各项参数78(2)需要注意⽇志⽂件备份数和⽇志⽂件⼤⼩,注意预留⽬录空间910(3)实际部署的时候backupFilePatch变量需要修改成linux⽬录1112-->1314<configuration status="error">1516<Properties>1718<Property name="fileName">front.log</Property>1920<Property name="backupFilePatch">d:/usr/front/log/</Property>2122</Properties>2324<!--先定义所有的appender-->2526<appenders>2728<!--这个输出控制台的配置-->2930<Console name="Console" target="SYSTEM_OUT">3132<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->3334<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>3536<!--这个都知道是输出⽇志的格式-->3738<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>3940</Console>41424344<!--这个会打印出所有的信息,每次⼤⼩超过size,则这size⼤⼩的⽇志会⾃动存⼊按年份-⽉份建⽴的⽂件夹下⾯并进⾏压缩,作为存档--> 4546<RollingFile name="RollingFile" fileName="${backupFilePatch}/${fileName}"4748 filePattern="${backupFilePatch}$${date:yyyy-MM}/app-%d{yyyyMMddHHmmssSSS}.log.gz">4950<PatternLayout5152pattern="%d{yyyy-MM-dd HH:mm:ss.SSS z} %-5level %class{36} %L %M - %msg%xEx%n"/>53545556<!-- ⽇志⽂件⼤⼩ -->5758<SizeBasedTriggeringPolicy size="20MB"/>5960<!-- 最多保留⽂件数 -->6162<DefaultRolloverStrategy max="20"/>6364</RollingFile>6566</appenders>67686970<!--然后定义logger,只有定义了logger并引⼊的appender,appender才会⽣效-->7172<loggers>7374<!--建⽴⼀个logger,此logger监听name对应的包名下的⽇志输出,level表⽰⽇志级别-->7576<Logger name="com.testlog" level="trace"7778 additivity="true">7980<AppenderRef ref="RollingFile"/>8182</Logger>8384<!--建⽴⼀个默认的root的logger-->8586<Root level="error">8788<!-- 在root中关联appender才会在对应的位置输出⽇志,定义⼀个输出到⽂件的appender也必须关联到此处才会保存⽇志到⽂件 --> 8990<AppenderRef ref="Console"/>9192</Root>9394</loggers>9596</configuration>。

log4j.properties配置示例

log4j.properties配置示例

log4j.properties配置⽰例1. 需要的jar如下:!-- log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.4</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.4</version><scope>runtime</scope></dependency>2. 将log4j.properties放⼊项⽬src路径下即可,虚拟机会⾃动加载⽇志配置⽂件,⽂件内容如下:### set log levels ###log4j.rootLogger = DEBUG , C , D , E### console ###log4j.appender.C = org.apache.log4j.ConsoleAppenderlog4j.appender.C.Target = System.outyout = org.apache.log4j.PatternLayoutyout.ConversionPattern = [mybatis_study][%p] [%-d{yyyy-MM-dd HH\:mm\:ss}] %C.%M(%L) | %m%n ### log file ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = ../logs/mybatis_study.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = INFOyout = org.apache.log4j.PatternLayoutyout.ConversionPattern = [mybatis_study][%p] [%-d{yyyy-MM-dd HH\:mm\:ss}] %C.%M(%L) | %m%n ### exception ###log4j.appender.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File = ../logs/mybatis_study_error.loglog4j.appender.E.Append = truelog4j.appender.E.Threshold = ERRORyout = org.apache.log4j.PatternLayoutyout.ConversionPattern = [mybatis_study][%p] [%-d{yyyy-MM-dd HH\:mm\:ss}] %C.%M(%L) | %m%n ###mybatis show sql###.ibatis=debugmon.jdbc.SimpleDataSource=debugmon.jdbc.ScriptRunner=debug.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debuglog4j.logger.java.sql.Connection=debuglog4j.logger.java.sql.Statement=debuglog4j.logger.java.sql.PreparedStatement=debug3. 也可以配置log4j.xml,如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"><log4j:configuration xmlns:log4j="/log4j/"><!-- [控制台STDOUT] --><appender name="console" class="org.apache.log4j.ConsoleAppender"><param name="encoding" value="GBK" /><param name="target" value="System.out" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%-5p %c{2} - %m%n" /></layout></appender><!-- [公共Appender] --><appender name="DEFAULT-APPENDER" class="org.apache.log4j.DailyRollingFileAppender"><param name="File" value="${webapp.root}/logs/rms-default.log" /><param name="Append" value="true" /><param name="encoding" value="GBK" /><param name="DatePattern" value="'.'yyyy-MM-dd'.log'" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d %-5p %c{2} - %m%n" /></layout></appender><!-- [错误⽇志APPENDER] --><appender name="ERROR-APPENDER" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="${webapp.root}/logs/rms-error.log" /><param name="Append" value="true" /><param name="encoding" value="GBK" /><param name="threshold" value="error" /><param name="DatePattern" value="'.'yyyy-MM-dd'.log'" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d %-5p %c{2} - %m%n" /></layout></appender><!-- Root Logger --><root><level value="${rootLevel}"></level><appender-ref ref="DEFAULT-APPENDER" /><appender-ref ref="ERROR-APPENDER" /><appender-ref ref="console" /></root></log4j:configuration>。

log4j2使用properties文件进行配置

log4j2使用properties文件进行配置

log4j2使⽤properties⽂件进⾏配置⽹上不少⽂章给的都是⽤xml进⾏配置,也会提到⽆法使⽤properties⽂件对log4j进⾏配置,但那应该只是在他们写⽂章的时候才是如此,最新的2.8.2版本经过我试验后是可以做到的当然该⽂件最好放在特定的⽬录中才⾏,官⽅⽂档也提到了1.Log4j will inspect the "log4j.configurationFile" system property and, if set, will attempt to load the configuration using the ConfigurationFactory that matches the file extension.2.If no system property is set the YAML ConfigurationFactory will look for log4j2-test.yaml or log4j2-test.yml in the classpath.3.If no such file is found the JSON ConfigurationFactory will look for log4j2-test.json or log4j2-test.jsn in the classpath.4.If no such file is found the XML ConfigurationFactory will look for log4j2-test.xml in the classpath.5.If a test file cannot be located the YAML ConfigurationFactory will look for log4j2.yaml or log4j2.yml on the classpath.6.If a YAML file cannot be located the JSON ConfigurationFactory will look for log4j2.json or log4j2.jsn on the classpath.7.If a JSON file cannot be located the XML ConfigurationFactory will try to locate log4j2.xml on the classpath.8.If no configuration file could be located the DefaultConfiguration will be used. This will cause logging output to go to the console.name = PropertiesConfigproperty.filename = target/logs#appenders = console, file#配置值是appender的类型,并不是具体appender实例的nameappenders = rollingappender.rolling.type = RollingFile = RollingLogFileappender.rolling.fileName=${filename}/automationlogs.logappender.rolling.filePattern = ${filename}/automationlogs-%d{MM-dd-yy-HH-mm-ss}-%i.logyout.type = PatternLayoutyout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%nappender.rolling.policies.type = Policiesappender.rolling.policies.size.type = SizeBasedTriggeringPolicyappender.rolling.policies.size.size=100MBappender.rolling.strategy.type = DefaultRolloverStrategyappender.rolling.strategy.max = 5rootLogger.level = tracerootLogger.appenderRef.rolling.ref = rollingrootLogger.appenderRef.rolling.ref = RollingLogFile。

log4j及其log4j2的使用

log4j及其log4j2的使用

log4j及其log4j2的使⽤简单的说 log4j2 是log4j2的升级版,据说采⽤了⼀些新技术(⽆锁异步、等等),使得⽇志的吞吐量、性能⽐log4j 1.x提⾼10倍,并解决了⼀些死锁的bug,⽽且配置更加简单灵活。

其使⽤⽅式与使⽤配置与log4j相同。

新建⼀个testlog的maven⼯程依赖相关的log4j2的jar包<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.5</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.5</version></dependency>log4j2⽂件读取类型:log4j是apache的⼀个开源项⽬,在写这篇博客的时候已经发布了2.0的beta版本,⾸先需要注意的是,log4j 2.0与以往的1.x有⼀个明显的不同,其配置⽂件只能采⽤.xml, .json或者 .jsn。

在默认情况下,系统选择configuration⽂件的优先级如下:(classpath为scr⽂件夹)1. classpath下名为 log4j-test.json 或者log4j-test.jsn⽂件2. classpath下名为 log4j2-test.xml3. classpath下名为 log4j.json 或者log4j.jsn⽂件4. classpath下名为 log4j2.xml新建⼀个log4j2.xml⽂件放在src/main/resources⽂件夹下log4j2.xml相关的配置内容如下所⽰:<?xml version="1.0" encoding="UTF-8"?><!-- log4j2使⽤说明:使⽤⽅式如下:private static final Logger logger = LogManager.getLogger(实际类名.class.getName());2、⽇志说明:(1)请根据实际情况配置各项参数(2)需要注意⽇志⽂件备份数和⽇志⽂件⼤⼩,注意预留⽬录空间(3)实际部署的时候backupFilePatch变量需要修改成linux⽬录--><configuration status="error"><Properties><Property name="fileName">front.log</Property><Property name="backupFilePatch">d:/usr/log/</Property></Properties><!--先定义所有的appender--><appenders><!--这个输出控制台的配置--><Console name="Console" target="SYSTEM_OUT"><!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--><ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" /><!--这个都知道是输出⽇志的格式--><PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" /></Console><!--这个会打印出所有的信息,每次⼤⼩超过size,则这size⼤⼩的⽇志会⾃动存⼊按年份-⽉份建⽴的⽂件夹下⾯并进⾏压缩,作为存档--><RollingFile name="RollingFile" fileName="${backupFilePatch}/${fileName}"filePattern="${backupFilePatch}$${date:yyyy-MM}/app-%d{yyyyMMddHHmmssSSS}.log.gz"><PatternLayoutpattern="%d{yyyy.MM.dd 'at' HH:mm:ss.SSS z} %-5level %class{36} %L %M - %msg%xEx%n" /><!-- ⽇志⽂件⼤⼩ --><SizeBasedTriggeringPolicy size="20MB" /><!-- 最多保留⽂件数 --><DefaultRolloverStrategy max="20"/></RollingFile></appenders><!--然后定义logger,只有定义了logger并引⼊的appender,appender才会⽣效--><loggers><!--建⽴⼀个logger,此logger监听name对应的包名下的⽇志输出,level表⽰⽇志级别--><Logger name="testlog" level="info" additivity="true"><AppenderRef ref="RollingFile" /></Logger><!--建⽴⼀个默认的root的logger--><Root level="error"><AppenderRef ref="Console" /></Root></loggers></configuration>Configuration标签中的常⽤元素说明:monitorInterval:Log4j 2 定期检查和应⽤配置⽂件的时间间隔(单位:秒,如果更改配置⽂件,不⽤重启系统)。

中国联通智慧城市云平台研发及实施工程-商用数据库管理开发用户部署手册

中国联通智慧城市云平台研发及实施工程-商用数据库管理开发用户部署手册

中国联通智慧城市云平台研发及实施工程-商用数据库管理开发安装部署手册(V1.0)北京思特奇信息技术股份有限公司本文档及其所含信息为机密材料,由北京思特奇信息技术股份有限公司拥有未经书面授权,不得对外泄露COPYRIGHT © 2020保留所有权利目录1 引言 (3)1.1编写目的 (3)1.2项目背景 (3)1.3术语定义 (4)1.4参考资料 (4)2 操作系统 (5)2.1操作系统版本 (5)2.2用户 (5)2.3参数配置 (5)2.4文件系统 (6)2.5依赖安装包 (7)3 ORACLE数据库 (8)3.1O RACLE版本要求 (8)3.2O RACLE安装用户 (8)3.3O RACLE安装步骤 (8)4 脚本说明 (9)4.1脚本功能 (9)4.2脚本部署 (11)4.3监控功能应用部署 (11)5 附录 (14)1引言1.1 编写目的为联通总部易成云项目数据库及服务中oracle自动化管理脚本部署用户手册,自动化管理脚本在部署中的规范说明,以及部署时的操作系统、数据库版本、系统环境等的要求。

此文档为项目中oracle数据库自动化管理中涉及相关参与人员,开发人员、oracle安装厂家、脚本实施人员。

1.2项目背景中国联通以“智慧城市”发展为契机,通过打造智慧城市云平台,发挥基础资源优势,以行业应用切入,整合产业资源,打造共赢模式,“智”于管理,“慧”及民生,促进应用创新及可持续发展,帮助政府落实规划。

智慧城市云平台的建设在新的形势下对中国联通的发展具有以下重要意义:(1)以行业应用产品引领市场转型,提升核心竞争力,推动可持续经营。

抓住城市信息化机遇,依托行业应用,有效发挥基础资源及 3G 技术优势,拉动移动、宽带、IDC、ICT等业务的持续快速发展。

(2)加强政府合作,有效激活产业资源,奠定产业链主导地位。

在“政府主导、企业推进、行业并举”的模式下,将有助于构建完善的上下游产业链,形成协同效应,避免成为纯管道化经营。

docx4j使用说明

docx4j使用说明

docx4j 入门这份文件的最新版本总是可以找到docx4j svn in /docs (在 Flat OPC XML 格式为Word 2007,HTML ,和PDF )。

这份文件是从英文翻译使用谷歌翻译。

如果你能提高翻译,请随时发送给你的改进版。

对于最近的报告,总是指英文版本。

什么是 docx4j?docx4j 是一个解压的docx一个“一揽子”库,并解析WordprocessingML XML 创建一个内存中的代表性Java。

最新版本的 docx4j 也支援PowerPoint pptx 文件。

它是在概念上类似于微软的OpenXML SDK,它是对的。

NET。

docx4j 是开源的,可以按照Apache许可证(2版)。

作为一个开放源码项目,欢迎踊跃投稿。

请参阅 docx4j 论坛/forums/ 了解详情。

docx4j 严重依赖JAXB,XML绑定的Java JCP标准。

你能想到的 docx4j 作为一个JAXB的实施除其他():* 打开包装公约* WordprocessingML(docx)的,开放的XML部分* Presentation ML (pptx) part of OpenXML该库是为了圆100%保真度之行docx文件,支持所有2007 WordML中。

为新的Word 2010功能的支持我们会尽快添加。

该 docx4j 项目是由 Plutext ( )。

是 docx4j 为你?docx4j 负责处理的docx文件(和pptx介绍)在爪哇。

这不是旧的二进制(。

doc)格式文件。

针对这一情况,看看在Apache的POI 的HWPF。

(事实上, docx4j 使用基本转换HWPF。

文件,以。

docx)的它也不是为RTF文件。

如果你要处理的。

NET平台的docx文件,你应该看看微软的OpenXML SDK的代替。

一种替代方法 docx4j 是Apache的POI。

我特别建议,对于处理Excel文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

log4j与log4j.properties的配置说明2007-12-01 18:42标签:java|log在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。

而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。

说明:下面分为三部分,第一部分讲解如何配置log4j,第二部分为对log4j.properties配置文件中的各个属性的讲解,第三部分为对 log4j的详细讲解,如果只想配置上log4j,那么只需要看前两个部分就可以,如果想对log4j 深入了解,则还需看第三部分。

一、Log4j配置第一步:加入log4j-1.2.8.jar到lib下。

第二步:在CLASSPATH下建立log4j.properties。

内容如下:1 log4j.rootCategory=INFO, stdout , R23 log4j.appender.stdout=org.apache.log4j.ConsoleAppender4 yout=org.apache.log4j.PatternLayout5 yout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n67 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender8 log4j.appender.R.File=D:\Tomcat 5.5\logs\qc.log9 yout=org.apache.log4j.PatternLayout10 yout.ConversionPattern=%d-[TS] %p %t %c - %m%n1112 .neusoft=DEBUG13 .opensymphony.oscache=ERROR14 .sf.navigator=ERROR15 mons=ERROR16 .apache.struts=WARN17 .displaytag=ERROR18 .springframework=DEBUG19 .ibatis.db=WARN20 .apache.velocity=FATAL2122 .canoo.webtest=WARN2324 .hibernate.ps.PreparedStatementCache=WARN25 .hibernate=DEBUG26 .logicalcobwebs=WARN第三步:相应的修改其中属性,修改之前就必须知道这些都是干什么的,在第二部分讲解。

第四步:在要输出日志的类中加入相关语句:定义属性:protected final Log log = LogFactory.getLog(getClass());在相应的方法中:if (log.isDebugEnabled()){log.debug(“System …..”);}二、Log4j说明1 log4j.rootCategory=INFO, stdout , R此句为将等级为INFO的日志信息输出到stdout和R这两个目的地,stdout和R 的定义在下面的代码,可以任意起名。

等级可分为OFF、 FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示,具体讲解可参照第三部分定义配置文件中的logger。

3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender此句为定义名为stdout的输出端是哪种类型,可以是org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)具体讲解可参照第三部分定义配置文件中的Appender。

4 yout=org.apache.log4j.PatternLayout此句为定义名为stdout的输出端的layout是哪种类型,可以是org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)具体讲解可参照第三部分定义配置文件中的Layout。

5 yout.ConversionPattern= [QC] %p[%t] %C.%M(%L) | %m%n如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:%m 输出代码中指定的消息%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r 输出自应用启动到输出该log信息耗费的毫秒数%c 输出所属的类目,通常就是所在类的全名%t 输出产生该日志事件的线程名%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

[QC]是log信息的开头,可以为任意字符,一般为项目简称。

输出的信息[TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning cached instance of singleton bean 'MyAutoProxy'具体讲解可参照第三部分定义配置文件中的格式化日志信息。

7 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender此句与第3行一样。

定义名为R的输出端的类型为每天产生一个日志文件。

8 log4j.appender.R.File=D:\Tomcat 5.5\logs\qc.log此句为定义名为R的输出端的文件名为D:\Tomcat 5.5\logs\qc.log可以自行修改。

9 yout=org.apache.log4j.PatternLayout与第4行相同。

10 yout.ConversionPattern=%d-[TS] %p %t %c - %m%n与第5行相同。

12 . neusoft =DEBUG指定com.neusoft包下的所有类的等级为DEBUG。

可以把com.neusoft改为自己项目所用的包名。

13 .opensymphony.oscache=ERROR14 .sf.navigator=ERROR这两句是把这两个包下出现的错误的等级设为ERROR,如果项目中没有配置EHCache,则不需要这两句。

15 mons=ERROR16 .apache.struts=WARN这两句是struts的包。

17 .displaytag=ERROR这句是displaytag的包。

(QC问题列表页面所用)18 .springframework=DEBUG此句为Spring的包。

24 .hibernate.ps.PreparedStatementCache=WARN25 .hibernate=DEBUG此两句是hibernate的包。

以上这些包的设置可根据项目的实际情况而自行定制。

三、log4j详解1、定义配置文件Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。

下面将介绍使用log4j.properties文件作为配置文件的方法:①、配置根LoggerLogger 负责处理日志记录的大部分操作。

其语法为:log4j.rootLogger = [ level ] , appenderName, appenderName, …其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。

Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。

通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。

比如在这里定义了INFO级别,只有等于及高于这个级别的才进行处理,则应用程序中所有DEBUG级别的日志信息将不被打印出来。

ALL:打印所有的日志,OFF:关闭所有的日志输出。

appenderName就是指定日志信息输出到哪个地方。

可同时指定多个输出目的地。

②、配置日志信息输出目的地 AppenderAppender 负责控制日志记录操作的输出。

其语法为:log4j.appender.appenderName = .of.appender.classlog4j.appender.appenderName.option1 = value1…log4j.appender.appenderName.optionN = valueN这里的appenderName为在①里定义的,可任意起名。

其中,Log4j提供的appender有以下几种:org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),可通过 log4j.appender.R.MaxFileSize=100KB设置文件大小,还可通过 log4j.appender.R.MaxBackupIndex=1设置为保存一个备份文件。

相关文档
最新文档