windows环境,tomcat输出日志到文件和控制台

windows环境,tomcat输出日志到文件和控制台
windows环境,tomcat输出日志到文件和控制台

网上找的,本人实验成功的,发来大家共享

在windows下tomcat的启动脚本默认不像unix下的脚本那样输出应用日志到logs/catalina.out,只在console中输出,如果日志刷的太快根本没法找到错误信息。

为了把日志输出到文件,需要修改以下脚本。

1)修改startup.bat,把脚本的倒数第二行:call "%EXECUTABLE%"

start %CMD_LINE_ARGS%

改为:call "%EXECUTABLE%" run %CMD_LINE_ARGS%

2)修改catalina.bat最后的一部分代码:

红色划线的部分是需要增加的代码:>>

?TALINA_HOME%\logs\catalina.?te:~0,10%.out

其中的catalina.?te:~0,10%.out是为了分日期存放日志文件。在cmd下echo ?te%看看,

如:2011-04-19星期二

发现从第一个字符开始,长度为10的子串正是2011-04-19。

这样在开发过程中每次双击startup.bat启动tomcat,脚本都会把应用日志保存到日期对应命名的日志文件中了。可是又带来一个新的问题,由于>>

?TALINA_HOME%\logs\catalina.?te:~0,10%.out 把输出都重定向到了文件中,console中就无法实时显示日志内容了,如何做到既把日志保存到磁盘文件中,又能在屏幕上实时监控日志呢?

想到unix下有tail -f ,于是试着度娘了一下“dos tail”,还真找到了一个在dos下的tail命令,只是要先安装一个windows组件Windows Server 2003 Resource Kit Tools。

如安装目录为“D:\Program Files\Windows Resource Kits\Tools”,把这个路径加入到PATH环境变量。

在cmd下tail /? ,出现以下信息则说明安装成功了:

usage: TAIL [switches] [filename]*

switches: [-?] display this message

[-n] display last n lines of each file (default 10)

[-f filename] keep checking filename for new lines

在tomcat主目录的bin下新建一个bat脚本taillog.bat,内容为:

if not exist "?TALINA_HOME%\logs\catalina.?te:~0,10%.out" echo "" > ?TALINA_HOME%\logs\catalina.?te:~0,10%.out

tail -f

?TALINA_HOME%\logs\catalina.?te:~0,4%-?te:~5,2%-?te:~8,2%.out

最后在catalina.bat中调用这个脚本:

这样就会弹出一个新的窗体,将

"?TALINA_HOME%\logs\catalina.?te:~0,10%.out"中的日志显示出来,如下图:

至于如何让日志在一个窗口中显示,目前正在研究中…

日志记录与异常处理规范(精)

日志记录与异常处理规范(2006-09-19 10:02:15转载日志记录与异常处理规范 1 日志记录规范规范日志设计规范主要目的是节省工作量,帮助对问题进行诊断。最终,终端用户可以获得更好的应用程序,并能从技术支持团队获得迅速的响应。 1.1 日志API 在使用 Java 平台进行开发时,使用的日志 API:Log4j-1. 2.8.jar 1.2 日志分类 l Security:记录外部对系统进行的各项操作 l Business:记录和跟踪业务逻辑执行过程 l Performance:记录和跟踪代码执行情况 1.3 日志级别日志级别有: l Debug: 包含了非常广泛的上下文信息,用于问题诊断。 l Info: 用于在产品环境中(粒度较粗)帮助跟踪执行过程的上下文消息。 l Warning: 警告消息,说明系统中可能存在问题。例如,如果这个消息类别是有关安全性方面的。 l Error: 错误消息说明系统中出现了严重的问题。这种问题通常都是不可恢复的,需要人工进行干预。表1 日志记录程序 public class Log4JTest { // Logging 类由EMIP平台提供Logging logging = Logging.getInstance("STDOUT"; public void testLogging( { //安全日志 https://www.360docs.net/doc/3216597467.html,("安全类型INFO级日志记录"; https://www.360docs.net/doc/3216597467.html,(Logging. SECURITY,"安 全类型INFO级日志记录"; https://www.360docs.net/doc/3216597467.html,(Logging. SECURITY,"安全类型INFO级日 志记录",new RuntimeException(; logging.error("安全类型ERROR级日志记录"; logging.error(Logging. SECURITY,"安全类型ERROR级日志记录"; logging.error(Logging. SECURITY,"安全类型ERROR级日志记录",new RuntimeException(; //业务日志 https://www.360docs.net/doc/3216597467.html,("业务类型INFO级日志记录"; https://www.360docs.net/doc/3216597467.html,(Logging. BUSINESS,"业务类型INFO级日志记录"; https://www.360docs.net/doc/3216597467.html,(Logging. BUSINESS,"业务类型INFO级日志记录",new RuntimeException(; logging.error("业 务类型ERROR级日志记录"; logging.error(Logging. BUSINESS,"业务类型ERROR 级日志记录"; logging.error(Logging. BUSINESS,"业务类型ERROR级日志记录",new RuntimeException(; //系统日志 https://www.360docs.net/doc/3216597467.html,("业务类型INFO级日志记录"; https://www.360docs.net/doc/3216597467.html,(Logging. BUSINESS,"业务类型INFO级日志记录"; https://www.360docs.net/doc/3216597467.html,(Logging. BUSINESS,"业务类型INFO级日志记录",new RuntimeException(; logging.error("业 务类型ERROR级日志记录"; logging.error(Logging. BUSINESS,"业务类型ERROR 级日志记录"; logging.error(Logging. BUSINESS,"业务类型ERROR级日志记录",new RuntimeException(; https://www.360docs.net/doc/3216597467.html,("系统类型INFO级日志记录";

设计一个Tomcat访问日志分析工具

常使用web服务器的朋友大都了解,一般的web server有两部分日志: 一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息 二是访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。 现在我来和大家介绍一下利用tomcat产生的访问日志数据,我们能做哪些有效的分析数据? 首先是配置tomcat访问日志数据,默认情况下访问日志没有打开,配置的方式如下:编辑${catalina}/conf/server.xml文件.注:${catalina}是tomcat的安装目录 把以下的注释()去掉即可。 其中directory是产生的目录tomcat安装${catalina}作为当前目录 pattern表示日志生产的格式,common是tomcat提供的一个标准设置格式。其具体的表达式为%h %l %u %t "%r" %s %b 但本人建议采用以下具体的配置,因为标准配置有一些重要的日志数据无法生。 %h %l %u %t "%r" %s %b %T 具体的日志产生样式说明如下(从官方文档中摘录): * %a - Remote IP address * %A - Local IP address * %b - Bytes sent, excluding HTTP headers, or '-' if zero * %B - Bytes sent, excluding HTTP headers * %h - Remote host name (or IP address if resolveHosts is false) * %H - Request protocol * %l - Remote logical username from identd (always returns '-') * %m - Request method (GET, POST, etc.) * %p - Local port on which this request was received * %q - Query string (prepended with a '?' if it exists) * %r - First line of the request (method and request URI) * %s - HTTP status code of the response * %S - User session ID * %t - Date and time, in Common Log Format * %u - Remote user that was authenticated (if any), else '-' * %U - Requested URL path * %v - Local server name * %D - Time taken to process the request, in millis * %T - Time taken to process the request, in seconds There is also support to write information from the cookie, incoming header, the Session or something else in the ServletRequest. It is modeled after the apache syntax: * %{xxx}i for incoming headers

应用系统日志规范

应用系统日志规范 在应用程序中添加程序日志记录可以跟踪代码运行时轨迹,作为日后 审计的依据;并且担当集成开发环境中的调试器的作用,向文件打印代码 的调试信息。本规定Jave EE项目必须使用Commons-Logging作为日志接 口封装,选用Apache提供的可重用组件Log4j作为底层实现。 1.日志命名规范 根日志(root logger)位于日志层次的最顶层,它的日志级别不能指派为空;不能通过使用它的名字直接得到它,而应该通过类的静态方法Logger.getRootLogger得到它(指root logger)。所有其他的日志可通 过静态方法Logger.getLogger来实例化并获取,这个方法 Logger.getLogger把所想要的logger的名字作为参数,一般取本类的名字作为参数。 2.日志信息级别规范 日志信息输出的优先级从高到低至少应分为五档,分别是Fatal、ERROR、WARN、INFO、DEBUG。这些级别用来指定这条日志信息的重要程度。在测试阶段可以打开所有级别的日志,系统上线后只允许输出INFO以上级别(含INFO)。 各级别的日志信息作用规定如下: 2.1致命(Fatal) 严重的错误,系统无法正常运行,如硬盘空间满等。这个级别很少被用,常暗含系统或者系统的组件迫近崩溃。

2.2错误(Error) 系统可以继续运行,但最好要尽快修复的错误。这个级别用的较多,常常伴随Java异常,错误(Error)的环境不一定会造成系统的崩溃,系统可以继续服务接下来的请求。 2.3警告(Warn) 系统可以正常运行,但需要引起注意的警告信息。这个级别预示较小的问题,由系统外部的因素造成的,比如用户输入了不符合条件的参数。 2.4信息(Info) 系统运行的主要关键时点的操作信息,一般用于记录业务日志。但同时,也应该有足够的信息以保证可以记录再现缺陷的路径。这个级别记录了系统日常运转中有意义的事件。 2.5调试(Debug) 系统运行中的调试信息,便于开发人员进行错误分析和修正,一般用于程序日志,关心程序操作(细粒度),不太关心业务操作(粗粒度)。 系统出现问题时,必须抛出异常,在处理异常时记录日志,且日志级别必须是前三个级别(Fatal\Error\Warning)中的一种。 3.日志配置规范 所有的日志配置文件放在src目录下,编译时随同.class文件一同拷贝到(%webapp_HOME%)\WEB-INF\classes\目录下,这些配置文件必须采用properties文件的编写方法, commons-logging.properties文件用来指定commons-logging的实现为log4j,log4j.properties文件用来配置 log4j的所有参数,日志配置信息不得配置在这两个文件以外的文件中。

log4j输出到文件和数据库

log4j输出到文件和数据库 控制台的实现就不说了,这里提供两种实例的配置,一种是输出为文件的(每天输出一个文件),一种为输出到数据库的配置。 1、输出到文件: Properties代码 log4j.rootCategory=WARN, CONSOLE, FILE https://www.360docs.net/doc/3216597467.html,.surfilter.bt=FATAL,TOFILE log4j.appender.TOFILE=org.apache.log4j.DailyRollingFileAppender log4j.appender.TOFILE.Threshold=FATAL log4j.appender.TOFILE.File=E:/javascpace/bt/logs/union.html log4j.appender.TOFILE.Append=true log4j.appender.TOFILE.ImmediateFlush=true log4j.appender.TOFILE.DatePattern='.'yyyy-MM-dd'.html' https://www.360docs.net/doc/3216597467.html,yout=com.surfilter.bt.util.FormatHTMLLayout log4j.rootCategory=WARN, CONSOLE, FILE https://www.360docs.net/doc/3216597467.html,.surfilter.bt=FATAL,TOFILE log4j.appender.TOFILE=org.apache.log4j.DailyRollingFileAppender log4j.appender.TOFILE.Threshold=FATAL log4j.appender.TOFILE.File=E:/javascpace/bt/logs/union.html log4j.appender.TOFILE.Append=true log4j.appender.TOFILE.ImmediateFlush=true log4j.appender.TOFILE.DatePattern='.'yyyy-MM-dd'.html' https://www.360docs.net/doc/3216597467.html,yout=com.surfilter.bt.util.FormatHTMLLayout 这里的com.surfilter.bt.util.FormatHTMLLayout是重写了log4j提供的HTMLLayout类,具体代码如下: Java代码 import java.text.SimpleDateFormat; import java.util.Map; import org.apache.log4j.HTMLLayout; import https://www.360docs.net/doc/3216597467.html,yout; import org.apache.log4j.Level; import org.apache.log4j.helpers.Transform; import org.apache.log4j.spi.LocationInfo; import org.apache.log4j.spi.LoggingEvent;

tomcat配置文件server文件详解

配置文件一般都在conf文件夹里,主要有server.xml,context.xml,tomcat_user.xml,web.xml四个常用配置文件,server主要是服务器设置的,例如端口设置,路径设置。context 里设置tomcat数据源,用来连接数据库。tomcat_user主要是用户名和密码的设置。web 是默认首页等等之类的设置。 元素名属性解释 server port 指定一个端口,这个端口负责监听关闭 tomcat 的请求 shutdown指定向端口发送的命令字符串 service name指定service 的名字 Connector(表示客户端和service之间的连接)port 指定服务器端要创建的端口号,并在这个断口 监听来自客户端的请求 minProcessors服务器启动时创建的处理请求的线程数maxProcessors最大可以创建的处理请求的线程数 enableLookups 如果为true ,则可以通过调用 request.getRemoteHost() 进行DNS 查询来 得到远程客户端的实际主机名,若为false 则 不进行DNS 查询,而是返回其ip 地址redirectPort 指定服务器正在处理http 请求时收到了一个 SSL 传输请求后重定向的端口号acceptCount 指定当所有可以使用的处理请求的线程数都被 使用时,可以放到处理队列中的请求数,超过 这个数的请求将不予处理 connectionTimeo ut 指定超时的时间数( 以毫秒为单位) Engine(表示指定service 中 的请求处理机,接收和处理来自Connector的请求)defaultHost 指定缺省的处理请求的主机名,它至少与其中 的一个host 元素的name 属性值是一样的 Context(表示一个 web 应用程序,通常为WAR 文件,关于WAR 的具体信息见servlet 规范)docBase应用程序的路径或者是WAR 文件存放的路径path 表示此web 应用程序的url 的前缀,这样请 求的url为http://localhost:8080/path/ **** reloadable 这个属性非常重要,如果为true ,则 tomcat 会自动检测应用程序的 /WEB-INF/lib 和/WEB-INF/classes 目录的 变化,自动装载新的应用程序,我们可以在不 重起tomcat 的情况下改变应用程序 host(表示name指定主机名

Java日志系统框架的设计与实现

Java日志系统框架的设计与实现 在Java领域,存在大量的日志组件,open-open收录了21个日志组件。日志系统作为一种应用程序服务,对于跟踪调试、程序状态记录、崩溃数据恢复都有着重要的作用,我们可以把Java日志系统看作是必不可少的跟踪调试工具。 1.简介 日志系统是一种不可或缺的跟踪调试工具,特别是在任何无人职守的后台程序以及那些没有跟踪调试环境的系统中有着广泛的应用。长期以来,日志系统作为一种应用程序服务,对于跟踪调试、程序状态记录、崩溃数据恢复都有非常现实的意义。这种服务通常以两种方式存在: 1.日志系统作为服务进程存在。Windows中的的事件日志服务就属于这种类型,该类型的日志系统通常通过消息队列机制将所需要记录的日志由日志发送端发送给日志服务。日志发送端和日志保存端通常不在同一进程当中,日志的发送是异步过程。这种日志服务通常用于管理员监控各种系统服务的状态。 2.日志系统作为系统调用存在。Java世界中的日志系统和Unix环境下诸多守护进程所使用的日志系统都属于这种类型。日志系统的代码作为系统调用被编译进日志发送端,日志系统的运行和业务代码的运行在同一进程空间。日志的发送多数属于同步过程。这种日志服务由于能够同步反映处系统运行状态,通常用于调试跟踪和崩溃恢复。 本文建立的日志系统基本属于第二种类型,但又有所不同。该日志系统将利用Java线程技术实现一个既能够反映统一线程空间中程序运行状态的同步日志发送过程,又能够提供快速的日志记录服务,还能够提供灵活的日志格式配置和过滤机制。 1.1系统调试的误区 在控制台环境上调试Java程序时,此时往控制台或者文本文件输出一段文字是查看程序运行状态最简单的做法,但这种方式并不能解决全部的问题。有时候,对于一个我们无法实时查看系统输出的系统或者一个确实需要保留我们输出信息的系统,良好的日志系统显得相当必要。因此,不能随意的输出各种不规范的调试信息,这些随意输出的信息是不可控的,难以清除,可能为后台监控、错误排除和错误恢复带来相当大的阻力。 1.2日志系统框架的基本功能 一个完备的日志系统框架通常应当包括如下基本特性: 所输出的日志拥有自己的分类:这样在调试时便于针对不同系统的不同模块进行查询,从而快速定位到发生日志事件的代码。

TOMCAT 开启访问日志功能(ACCESS LOG)

修改位置如下图 具体的解释如下 Access Log Valve用来创建日志文件,格式与标准的web server日志文件相同。可以使用用日志分析工具对日志进行分析,跟踪页面点击次数、用户会话的活动等。Access Log Valve 的很多配置和行为特性与File Logger相同,包括每晚午夜自动切换日志文件。Access Log Valve可以和任何Catalina容器关联,记录该容器处理的所有请求。 例子如下: className 实现的Java类名。必须被设置成 org.apache.catalina.valves.AccessLogValve。 directory 存放日志文件的目录,可以是相对路径或者绝对路径。如果使用相对路径,是指相对于$CATALINA_HOME的路径。如果不指定directory属性,缺省值是“logs”(相对于$CATALINA_HOME) pattern 需要记录的请求/响应不同信息域的格式布局。如果是“common”或者“combine”,说明选择标准格式。下面会有关于配置这个属性的更多信 息。 prefix 日志文件名的前缀。如果没有指定,缺省值是“access_log.”。如果不想使用前缀,使用长度为0的字符串。 resolveHosts 将远端主机的IP地址通过DNS查询转换成主机名,设为true。如果为false,忽略DNS查询,报告远端的IP地址。 suffix 日志文件名的后缀。如果没有指定,缺省值是“”。如果不想使用后缀, 使用长度为0的字符串。 rotatable缺省值为true,用来决定日志是否翻转的标志。如果为false,日志文件

日志记录规范

平常我的系统开发运行过程中,记录关键信息对于完善和修改提出了明确的建议。但是在现实的一些应用中的日志记录比较混乱,导致无法准确快速的定位问题发生的地方和问题发生的时候以及问题发生的场景。我就依据我平时使用log4j进行日志记录的一点心得与大家分享如何更加规范的记录日志信息,如果有不妥的问题请明示我好进行相应的改进,共同进步哈。 1.要记录什么类型日志 我们的系统开发常常会涉及到系统致命错误日志,系统可控错误日志,用户操作日志和系统运行日志这四大类日志的记录。记录致命性错误用于记录会影响整个系统正常运行的错误,比如我们在开发过程中的try...catch...模块中抛出的一些未能预料到的系统错误,而且这种错误会导致系统运行失败的信息进行记录。系统可控错误日志,这一类的日志发生之后其实不会导致系统运行出现异常的,可能是对某些数据的初始化深入验证出现的问题。用户操作日志这一类日志量比较大,同时这一类日志用于跟踪用户的行为分析是非常的重要的应为可以作为用户数据挖掘发现用户的喜好等一些信息。程序运行信息记录,这一类信息用于记录子过程运行情况。 2.致命错误如何记录 如上所述我们明确的错误日志,是用来记录系统费预测性错误,可能导致网站爆出黄页相应的操作流程无法进行下去。或则在一些安装程序中记录导致系统突然退出的相关信息。在防御式编程中经常使用try....catch...模块包括一个程序的运行过程,catch的最后捕获的一级Exception是我们无法控制也无法预测的系统运行异常,这里我们记录fatal致命性错误,我这里一般记录的是一场发生的堆栈信息。如下程序块: [html]view plaincopyprint? 1.try { 2. VerificationUser(user); 3. String result = OrderTicket(user,flight); 4. orderticket.trace("执行占座成功!占座成功的代码: "+result); 5. https://www.360docs.net/doc/3216597467.html,(user.getName()+"执行了占座操作,占座编码 为"+result); 6. String ticketNo= GenariteTicket(result); 7. genariteTicket.trace("执行出票成功!出票成功票号: "+ticketNo);

Tomcat系统日志激活配置方法

Tomcat日志记录激活配置方法 【编写人】:孙福成 【日期】:2010年2月1日 目录 1.文档说明 (1) 2.系统日志激活方式 (1) 2.1.配置方式 (1) 2.2.语法说明 (1) 2.3.参数说明 (2) 2.4.日志样例 (2) 3.日志备份 (2) 4.日志统计................................................................................................. 错误!未定义书签。 1.文档说明 本文档描述Tomcat系统日志记录功能的激活和配置方式,适用于所有使用Tomcat4、5的Web应用。 2.系统日志激活方式 2.1.配置方式 编辑Tomcat/conf/server.xml文件,找到如下行: 增加下面的行: 2.2.语法说明 directory="logs" ----存放日志的目录,请不要修改 prefix="bbs_access_log." ----日志文件名 suffix=".log" ---日志文件扩展名 pattern="%a...." ---日志字段参数

log4j日志输出规范

Log4j 使用参考规范

目录 简介 (3) 1. 概述 (3) 2. 库主件 (3) 3. 主要组件 (3) 配置 (4) 1. 相关配置文件 (4) 2. 详细配置说明 (5) 3. 输出方式 (5) 4. 输出格式 (6) 调用 (7) 注意问题 (7) 参考文档 (8)

1. 概述 程序开发环境中的日志记录是由嵌入在程序中以输出一些对开发人员有用信息的语句所组成。例如,跟踪语句(trace),结构转储和常见的System.out.println或printf调试语句。log4j 提供分级方法在程序中嵌入日志记录语句。日志信息具有多种输出格式和多个输出级别。 使用一个专门的日志记录包,可以减轻对成千上万的System.out.println 语句的维护成 本,因为日志记录可以通过配置脚本在运行时得以控制。log4j 维护嵌入在程序代码中的日志记录语句。通过规范日志记录的处理过程,一些人认为应该鼓励更多的使用日志记录并且获得更高程度的效率。 五级输出,依次为DEBUG、INFO、WARN、ERROR、FATAL。使用者可根据不同的 需求,设定不同的输出级别,则得到不同级别的输出结果。 (在正式生产环境中,一般设定为 warn) 2. 库主件 目前log4j 2.0 版本需要JAVA5(logging services designed for Java 5 and later);1.3 版不被推荐使用,我们使用的最多的是1.2版。目前可download 的是1.2.17 版。下载地址:https://www.360docs.net/doc/3216597467.html,/dyn/closer.cgi/logging/log4j/ 库文件一般为名为log4j.jar, 使用时加入lib路径下。 3. 主要组件 Log4j有三个主要组件:loggers、appenders和layouts。这三个组件协同工作,使开发人员能够根据消息类型和级别来记录消息,并且在程序运行期控制消息的输出格式位置。Logger:记录器;Logger 负责处理日志记录的大部分操作。 Appender:挂载点;Appender 负责控制日志记录操作的输出。 Layout:布局;Layout 负责格式化Appender 的输出。

日志规范(初稿)

日志规范 一.什么时候打日志 原则:一般来说日志分为两种:业务日志和异常日志,使用日志我们希望能达到以下目标: 1.对程序运行情况的记录和监控; 2.在必要时可详细了解程序内部的运行状态; 3.对系统性能的影响尽量小 通常情况下在程序日志里记录一些比较有意义的状态数据:程序启动,退出的时间点;程序运行消耗时间;耗时程序的执行进度;重要变量的状态变化。除此之外,在公共的日志里规避打印程序的调试或者提示信息。 日志等级: 1.成品阶段:我的代码是INFO 等级,第三方库是WARN。 2.测试、集成阶段:我的代码是DEBUG 等级,第三方库是WARN(或 者如果需要的话是INFO)。 3.开发阶段:任何有意义的信息。 注意:不建议使用TRACE/FINEST 等级 二.怎么打日志(日志最佳实践) 编码规范: 1.在一个对象中通常只使用一个Logger对象,Logger应该是static final 的,只有在少数需要在构造函数中传递logger的情况下才使用private

final。 static final logger_LOG=loggerFactory.getLogger(Main.class); 2.输出Exceptions的全部Throwable信息,因为logger.error(msg)和logger.error(msg,e.getMessage())这样的日志输出方法会丢失掉最重要的StackTrace信息。 例子:void foo(){ try { // do something... } catch ( Exception e ){ _LOG.error(e.getMessage()); // 错误 _LOG.error("Bad things : ",e.getMessage()); // 错误 _LOG.error("Bad things : ",e); // 正确 }} 3.不允许记录日志后又抛出异常,因为这样会多次记录日志,只允许记录一 次日志。 例子:void foo() throws LogException{ try{ // do something... }catch ( Exception e ){ _LOG.error("Bad things : ", e); throw new LogException("Bad things : ",e); }}

Log4j 日志内容详解

Log4j详细解 1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。 最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类来封装此类操作,而不是让一系列的打印语句充斥了代码的主体。 1.2. Log4j简介 在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 此外,通过Log4j其他语言接口,您可以在C、C+ +、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI 甚至是SNMP应用中。 Log4j有三个主要的组件: Loggers(记录器),Appenders (输出源)和Layouts(布局),这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。下面对三个组件分别进行说明:1、Loggers Loggers组件在此系统中被分为五个级别:DEBUG、INFO、W ARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO < W ARN < ERROR < FATAL,分别用来指定这条日志信息的重要程度,明白这一点很重要,这里Log4j有一个规则:假设Loggers级别为P,如果在Loggers中发生了一个级别Q比P高,则可以启动,否则屏蔽掉。 假设你定义的级别是info,那么error和warn的日志可以显示而比他低的debug信息就不显示了。 Java程序举例来说: ***建立Logger的一个实例,命名为“com.foo”*** Logger logger = Logger.getLogger("com.foo"); ***"com.foo"是实例进行命名,也可以任意*** ***设置logger的级别。通常不在程序中设置logger的级别。一般在配置文件中设置。*** logger.setLevel(https://www.360docs.net/doc/3216597467.html,); Logger barlogger = Logger.getLogger("com.foo.Bar"); ***下面这个请求可用,因为W ARN >= INFO*** logger.warn("Low fuel level."); ***下面这个请求不可用,因为DEBUG < INFO*** logger.debug("Starting search for nearest gas station.");

TomcatWeb服务器安全配置基线

Tomcat Web服务器安全配置基线 中国移动通信有限公司管理信息系统部 2012年 04月

备注: 1.若此文档需要日后更新,请创建人填写版本控制表格,否则删除版本控制表格。

目录 第1章概述 (4) 1.1目的 (4) 1.2适用范围 (4) 1.3适用版本 (4) 1.4实施 (4) 1.5例外条款 (4) 第2章帐号管理、认证授权 (5) 2.1帐号 (5) 2.1.1共享帐号管理* (5) 2.1.2无关帐号管理* (5) 2.2口令 (6) 2.2.1密码复杂度 (6) 2.2.2密码生存期 (7) 2.3授权 (7) 2.3.1用户权利指派* (7) 第3章日志配置操作 (9) 3.1日志配置 (9) 3.1.1审核登录 (9) 第4章IP协议安全配置 (10) 4.1IP协议 (10) 4.1.1支持加密协议* (10) 第5章设备其他配置操作 (11) 5.1安全管理 (11) 5.1.1定时登出 (11) 5.1.2错误页面处理 (11) 5.1.3目录列表访问限制 (12) 第6章评审与修订 (14)

第1章概述 1.1 目的 本文档规定了中国移动通信有限公司管理信息系统部门所维护管理的Tomcat WEB服务器应当遵循的安全性设置标准,本文档旨在指导系统管理人员进行Tomcat WEB服务器的安全配置。 1.2 适用范围 本配置标准的使用者包括:服务器系统管理员、应用管理员、网络安全管理员。 本配置标准适用的范围包括:支持中国移动集团公司管理信息系统部运行的Tomcat Web 服务器系统。 1.3 适用版本 4.x、 5.x、 6.x版本的Tomcat Web服务器。 1.4 实施 本标准的解释权和修改权属于中国移动集团管理信息系统部,在本标准的执行过程中若有任何疑问或建议,应及时反馈。 本标准发布之日起生效。 1.5 例外条款 欲申请本标准的例外条款,申请人必须准备书面申请文件,说明业务需求和原因,送交中国移动通信有限公司管理信息系统部进行审批备案。

Tomcat控制台日志按日存放配置

第一章Cronolog配置讲解 1.1.cronolog介绍 cronolog小工具可以很好处理Apache、Tomcat服务日志。 Apache有两个log文件access.log 和error.log。error.log中存放诊断信息和处理请求中出现的错误,由于这里经常包含了出错细节以及如何解决,如果服务器启动或运行中有问题,首先就应该查看这个错误日志。access.log 访问日志中会记录服务器所处理的所有请求。在默认情况下,log记录存在于这两个单独的文件中,当网站访问量较大或者错误信息较多的时候,log文件的大小会急速增长。一般每10000个请求,访问日志就会增加1MB或更多。在这种情况下,如果当日志文件过大,就很难通过日志文件来分析。而且,对于AWStats这样的日志分析软件,它要求日志文件是按日存储的。Apache httpd可以通过管道将访问记录和出错信息传递给另一个进程,而不是写入一个文件。只要用管道操作符”|“后面跟一个可执行文件名,就可以使这个程序从标准输入设备获得事件记录。Apache在启动时,会同时启动这个管道日志进程,并且在运行过程中,如果这个进程崩溃了,会重新启动这个进程(所以我们称这个技术为”可靠管道日志”)。Apache推荐使用cronolog程序对log文件进行截断并按日存放。 Tomcat服务默认将控制台的日志存放在catalina.out中,随着日志记录增加,查看维护信息很不方便,而使用cronolog程序对log文件进行截断并按日存放,很容易维护。 1.2.Linux 下的安装与配置 步骤如下: ?下载:cronolog-1.6.2.tar.gz ?安装(默认是安装在/usr/local/sbin/下): √ # tar zxvf cronolog-1.6.2.tar.gz √ # ./configure (进入上面tar后生成的目录)

Log4j笔记--log4j的各种输出控制的权限

Log4j笔记 ●为什么要使用日志 ?开发阶段可以发现程序的问题,排错 ?产品阶段可以记录程序运行的状况 ?Log4j就是一个简便的日志管理工具 ●System.out.println()的问题 ?不能在运行过程中打开或者关闭 ?不能有针对性地选择 ?输出的信息没有分级 ?只能输出文本信息 ?不能改变输出的位置 Log4j可以解决以上的所有问题 ●log4j简介 ?是最流行的Java日志处理框架 ?Apache的子项目 ?开源 ●log4j的使用 ?需要从Apache官方网站上下载jar包 ?添加到项目的Build Path里 ?使用示例 运行这个程序,需要log4j.properties文件 warn是指输出的日志级别;大于等于这个级别的输出才会执行,小于此级别的不会输出;级别有8种,名称固定

Console:输出的位置或者目的地,这个名字是别名,可以任意起名字 在第二行针对这个目的地进行设置 如果上面叫aaa 第二行就是log4j.appender.aaa 第三行可以设置输出目的地的一些配置信息,最常用的是输出的布局格式 对于输出到文件,还需要在这个位置指定文件的路径 log4j的核心 ●Logger 完成日志信息的处理,可以定义输出的层次和决定信息是否输出 输出的优先级顺序: ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF ALL

WebTracker日志配置的几种常见方法

常见Web日志切割方法 本文档就IIS、Apache、Tomcat常见Web服务下的日志切割及发布进行说明。 配置前说明 --------------------------------------------------------- 2 IIS服务器---------------------------------------------------------- 3 1、日志文件切割--------------------------------------------- 3 2、配置网站日志--------------------------------------------- 3 3、日志文件获取方法----------------------------------------- 6 4、Win2003 Server log文件可下载配置------------------------ 8 5、设置虚拟目录IP访问限制--------------------------------- 10 Apache服务器------------------------------------------------------ 11 1、日志分割设置-------------------------------------------- 11 2、设置虚拟目录来发布日志---------------------------------- 12 Tomcat服务器------------------------------------------------------ 14 1、日志分割设置-------------------------------------------- 14 2、设置虚拟目录来发布日志---------------------------------- 15

Log4j基础使用

Log4j日志工具 基本介绍 原理:输出级别,输出样式,输出目的地 常用:commons-logging(Apache组织)、Log4j、jdk1.4自带的Logging Commons-logging日志控件可以控制使用Log4j还是使用Logging,当有Log4j 时使用Log4j,否则使用logging。 Log4j:Log4j只在初始化的时候打开文件,并保持对文件的写控制,到系统结束时在 关闭文件,这样使IO次数达到最小,提高了运行效率。 Log4j可使用xml和属性文件配置使用。 输出级别:All,TRACE(跟踪),DEBUG(调试),INFO(信息),WARNING(警告), ERROR(错误),FITAL(致命),OFF 使用后面的输出级别会自动屏蔽掉前面的输出级别。 配置3个重要概念 日志记录器(Logger) 输出地(Appender) 日志格式话器(Layout) Logger配置介绍 Log4j中有一个跟记录器rootLogger,它是所有Logger的父类。 语法:log4j.rootLogger=ERROR, yin //配置所有类 https://www.360docs.net/doc/3216597467.html,.newer.dao.BaseDAO=DEBUG //配置指定类 Category: https://www.360docs.net/doc/3216597467.html,.newer=DEBUG //相当于com.newer下所有Logger,Gategory类似于Package Appender配置介绍 定义:表示输出到什么地方,控制台、文件、数据库、远程服务器等。 log4j.appender.yin=org.apache.log4j.ConsoleAppender // 控制台输出 # log4j.appender.yin.Threshold=DEBUG //以DEBUG以上级别输出 # log4j.appender.yin.Encoding=UTF-8 //编码方式 # log4j.appender.yin.ImmediateFlush=true //是否立即输出 # log4j.appender.yin.Target=System.err //使用System.err输出 https://www.360docs.net/doc/3216597467.html,yout=org.apache.log4j.PatternLayout https://www.360docs.net/doc/3216597467.html,yout.ConversionPattern=Hibernate: %m%n #号注释可省略,#注释必须另起一行,输出有 System.err和System.out

相关文档
最新文档