『壹』 如何解决Tomcat服务器的stdout.log大文件问题
如何处理Tomcat日志复catalina.out日志文件制过大的问题tomcat日志记录配置在conf/logging.properties中有这5类日志catalina,localhost,manager,admin(控制台),host-manager还有8个级别 其中 设置为OFF 就可以关闭该类日志 记录功能 打开logging.properties 如图就将控制台日志记录设置为关闭tomcat每天都会在logs目录生成文件:catalina.out、catalina.Y-M-D.log、localhost.Y-M-D.log、manager.Y-M-D.log、host-manager.Y-M-D.log可以通过修改conf\logging.properties文件来改变生成log的方式。示例:设定某类日志的级别(注:catalina日志会输出catalina.Y-M-D
『贰』 tomcat 日志都记录在那个文件里,保存在哪里
可以使用log4j的日志配置来保存生产的日志,路径和文件大小均可以自己配置。Log4j下载在apache网站,可以免费下载到Log4j最新版本的软件包Apachelog4j(推荐)Apachelog4j2Log4j的包下载完成后,解压,将其中打包好的的log4j-1.x.x.jar导入你的工程LIB中。Log4j配置Log4J的配置文件(ConfigurationFile)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1.配置文件Log4J配置文件的基本格式如下:#配置根Loggerlog4j.rootLogger=[level],appenderName1,appenderName2,…#配置日志信息输出目的地Appenderlog4j.appender.appenderName=fully.qualified.name.of.appender.classlog4j.appender.appenderName.option1=value1…log4j.appender.appenderName.optionN=valueN#配置日志信息的格式(布局)log4j.appender.appenderName.layout=fully.qualified.name.of.layout.classlog4j.appender.appenderName.layout.option1=value1…log4j.appender.appenderName.layout.optionN=valueN其中[level]是日志输出级别,共有5级:为日志输出目的地,Log4j提供的appender有以下几种:org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)Layout:日志输出格式,Log4j提供的layout有以下几种:org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)打印参数:Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:%m输出代码中指定的消息%p输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r输出自应用启动到输出该log信息耗费的毫秒数%c输出所属的类目,通常就是所在类的全名%t输出产生该日志事件的线程名%n输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”%d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyMMMddHH:mm:ss,SSS},输出类似:2002年10月18日22:10:28,921%l输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)2.在代码中初始化Logger:1)在程序中调用BasicConfigurator.configure()方法:给根记录器增加一个ConsoleAppender,输出格式通过PatternLayout设为"%-4r[%t]%-5p%c%x-%m%n",还有根记录器的默认级别是Level.DEBUG.2)配置放在文件里,通过命令行参数传递文件名字,通过PropertyConfigurator.configure(args[x])解析并配置;3)配置放在文件里,通过环境变量传递文件名等信息,利用log4j默认的初始化过程解析并配置;4)配置放在文件里,通过应用服务器配置传递文件名等信息,利用一个特殊的servlet来完成配置。
『叁』 tomcat 的 日志问题
抛开日志不说,lz需要的这两个功能,自己应该完全有能力实现这样一个功能吧,专门记录用户的操作以及相关信息和异常。所需要注意的就是直接把它print出来即可。tomcat会自动记录所有标出输出。==============程序运行时,在使用System.out.println();System.err.println();等标准输出命令时,在Tomcat\logs目录下,会自动产生日志文件(文件名以当天日期命名)。如果lz需要用户操作时间的话,请自行将当前时间(精确度由lz自己定)加在System.out.println()等标准输出迷宫里那个中
『肆』 如何配置和使用Tomcat访问日志
配置位置在log下的server.xml,(tomcat容器)<Engine defaultHost="localhost" name="Catalina"> <Host appBase="webapps" name="localhost"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/> <Valve className="org.apache.catalina.valves.AccessLogValve" fileDateFormat="yyyy-MM-dd" pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %{x-jphone-uid}i %{x-up-subno}i" prefix="localhost_access_log." suffix=".txt" directory="/var/log/accesslog" condition="drop"/> <Context path="" docBase="cn_issue" debug="0"/> </Host> <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> </Engine>以下是摘抄正文original link:http://forum.ospod.com/post-25088-1.fhtml;jsessionid=Access Log Valve用来创建日志文件,格式与标准的web server日志文件相同。可以使用用日志分析工具对日志进行分析,跟踪页面点击次数、用户会话的活动等。Access Log Valve的很多配置和行为特性与File Logger相同,包括每晚午夜自动切换日志文件。Access Log Valve可以和任何Catalina容器关联,记录该容器处理的所有请求。 例子如下: directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%{X-Forwarded-For-Pound}i %l %u %t "%r" %s %b %T "%{HTTP_X_UP_CALLING_LINE_ID}i" "%{x-up-calling-line-id}i" "%{User-Agent}i"" resolveHosts="false"/> 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,日志文件永远不翻转,并且忽略fileDataFormat。要谨慎使用。 condition打开条件日志。如果设置了这个属性,只有在ServletRequest.getAttribute()是null的时候,才会为请求创建日志。比如,如果 condition设为junk,则只有在Servlet.getAttribute("junk")==null的时候,才会记录这个请求。使用过滤器,可以很容易设置(或者取消设置)不同请求的属性。 fileDateFormat允许在日志文件名称中使用定制的日期格式。日志的格式也决定了日志文件翻转的频率。如果想每个小时翻转一次,将这个值设为yyyy-MM-dd.HHpattern属性值由字符串常量和pattern标识符加上前缀"%"组合而成。pattern标识符加上前缀"%",用来代替当前请求/响应中的对应的变量值。目前支持如下的pattern: %a – 远端IP地址%A – 本地IP地址%b – 发送的字节数,不包括HTTP头,如果为0,使用"-"%B – 发送的字节数,不包括HTTP头%h – 远端主机名(如果resolveHost=false,远端的IP地址)%H – 请求协议%l – 从identd返回的远端逻辑用户名(总是返回 '-')%m – 请求的方法(GET,POST,等)%p – 收到请求的本地端口号%q – 查询字符串(如果存在,以 '?'开始)%r – 请求的第一行,包含了请求的方法和URI%s – 响应的状态码%S – 用户的session ID%t – 日志和时间,使用通常的Log格式%u – 认证以后的远端用户(如果存在的话,否则为'-')%U – 请求的URI路径%v – 本地服务器的名称%D – 处理请求的时间,以毫秒为单位%T – 处理请求的时间,以秒为单位
『伍』 tomcat里面的文件夹代表谢什么
tomcat下有9个目录,分别是bin,common,conf,logs,server,shared,temp,webapps,work 目录,现在对每一目录做介绍。tomcat根目录在tomcat中叫<CATALINA_HOME>,文章中把tomcat解压后在c:/下。1.<CATALINA_HOME>/bin: 存放各种平台下启动和关闭Tomcat的脚本文件。其中有个档是catalina.bat,打开这个windos配置文件,在非注释行加入JDK路径,例如 : SET JAVA_HOME=C:j2sdk1.4.2_06 保存后,就配置好tomcat环境了。 startup.bat是windows下启动tomcat的文件,shutdown.bat是关闭tomcat的文件。2.<CATALINA_HOME>/common: 在common目录下的lib目录,存放Tomcat服务器和所有web应用都能访问的JAR?。3.<CATALINA_HOME>/shared: 在shared目录下的lib目录,存放所有web应用能访问的,但Tomcat不能访问的JAR?。4.<CATALINA_HOME>/server: 在server/webapps目录中,存放Tomcat自带的两个APP-admin和manager应用,使用来管理Tomcat-web服务用的。在server/lib目录中,存放tomcat服务器所需要的各,web应用不能访问种jar?。5.<CATALINA_HOME>/work : Tomcat把各种由jsp生成的servlet文件放在这个目录下。work这个文件夹下面的东西建议你去看看就可以明白了 那是JSP文件编译成.java->.classes6.<CATALINA_HOME>/temp : 临时活页夹,Tomcat运行时候存放临时文件用的。7.<CATALINA_HOME>/logs : 存放Tomcat的日志文件8.<CATALINA_HOME>/conf : Tomcat的各种配置文件, tomcat启动的时候需要读取的配置文件:server.xml(tomcat主要配置文件)、web.xml和tomcatat-users.xml、catalina.policy(安全策略文件)等。修改了以后需要重启tomcat才能生效.最重要的是 server.xml;配置tomcat组件的XML文件server.XML其中包括I.顶层类元素[Top Level Elements]: 位于整个配置文件的顶层, 包括<Server>和<Service>;II.连接器类元素[Connectors ]: 客户和服务(容器类元素)间的通讯接口。接受客户请求,返回响应结果;<Connector>II.容器类元素[Containers]: 处理客户请求并且生成响应结果,包含3个:<Engine> <Host> <Context>IV.嵌套类元素[Nested Components]: 可以加入到容器中的元素,包括:<logger> <Valve><Realm>等一个<Server>包含一个或多个<Service>,一个<Service>包含唯一一个<Engine>和一个或多个<Connector>,多个<Connector>共享一个<Engine>;一个<Engine>包含多个<Host>,每个<Host>定义一个虚拟主机,包含一个或多个web应用<Context>; <Context>元素是代表一个在虚拟主机上运行的Web应用。<Context>标签的描述Please note that for tomcat 5.x, unlike tomcat 4.x, it is NOT recommended to place <Context> elements directly in the server.xml file. Instead, put them in the META-INF/context.xml directory of your WAR file or the conf directory as described above. server.xml配置简介 下面是这个文件中的基本配置信息,更具体的配置信息见tomcat的文档 server: port 指定一个端口,这个端口负责监听关闭tomcat的请求 shutdown 指定向端口发送的命令字符串 service: name 指定service的名字 Connector (表示客户端和service之间的连接): port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求 minProcessors 服务器启动时创建的处理请求的线程数 maxProcessors 最大可以创建的处理请求的线程数 enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址 redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号 acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理 connectionTimeout 指定超时的时间数(以毫秒为单位) 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 指定主机名 appBase 应用程序基本目录,即存放应用程序的目录 unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序 Logger (表示日志,调试和错误信息): className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口 prefix 指定log文件的前缀 suffix 指定log文件的后缀 timestamp 如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txt Realm (表示存放用户名,密码及role的数据库): className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口 Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样): className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息 directory 指定log文件存放的位置 pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多 注意: 默认的server.xml中,Realm元素只设置了一个className属性,但此文件中也包含几个通过JDBC连接到数据库进行验证的示例(被注释掉了),通过Realm元素我们可以实现容器安全管理(Container Managed Security)。 还有一些元素,如Parameter,loader,你可以通过tomcat的文档获取这些元素的信息。 9.<CATALINA_HOME>/webapps: web应用的发布目录,把 java开发的web站点或war文件放入这个目录下就可以通过tomcat服务器访问了。在绝大多数资料上,都只提到了conf/server.xml以及context下面的 WEB-INF/web.xml,但我发现,有时,在server.xml上面没有配置的内容,tomcat也运行着,后来发现,原来除了这两处配置外,还有一处重要的配置文件, 在TOMCAT_HOME/conf/Catalina/下面(Catalina是server.xml里的engine的名称),也是一些关键的配置文件,每个主机(server.xml里的Host),在这里有一个目录,每个主机(Host)里的一个context在该主机目录下有一个对应的xml文件,比如,根目录对应ROOT.xml,其它名为test的context对应test.xml。TOMCAT_HOME/conf/Catalina/hostname/context1.xml 相当于在server.xml中的Catalina引擎下的hostname主机下配置context1WEB应用。在目录里配置,和在 server.xml里配置效果是一样的,Tomcat自带的admin,自动将所有context转到目录下配置,而不是集中在server.xml。 10、如何新建虚拟目录?修改 Tomcat安装目录//conf//server.xml ,在下列行前</Host></Engine>添加下列行:<Context path="/my" docBase="c://myjsp//test" debug="0" reloadable="true"></Context>表示增加虚拟目录 my,对应物理目录位置c://myjsp//test,若存在c://myjsp//test//hello.jsp,则下列地址可访问:htpp://localhost:8080/my/hello.jsp修改server.xml后,需要重新启动tomcat.
『陆』 tomcat的访问日志格式是可以配置的吗
可以。在tomcat的server.xml文件中,host主机配置区域找到类似如下(红色部分)即为访问日志的配置:<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"><!–…部分内容略..–> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host>其中的directory用于指定日志的存放路径,默认位于tomcat的logs目录中,例如我们可以修改成:directory="c:/wwwlogs" 使日志放到c:\wwwlogs目录中去。其中的prefix和suffic分别用于指定日志文件的前缀和后缀,不用我多说。现在我们主要来看一下pattern配置段,它用于指定日志的输出格式。有效的日志格式模式可以参见下面内容,如下字符串,其对应的信息由指定的响应内容取代: %a – 远程IP地址 %A – 本地IP地址 %b – 发送的字节数,不包括HTTP头,或“ – ”如果没有发送字节 %B – 发送的字节数,不包括HTTP头 %h – 远程主机名 %H – 请求协议 %l (小写的L)- 远程逻辑从identd的用户名(总是返回' – ') %m – 请求方法 %p – 本地端口 %q – 查询字符串(在前面加上一个“?”如果它存在,否则是一个空字符串 %r – 第一行的要求 %s – 响应的HTTP状态代码 %S – 用户会话ID %t – 日期和时间,在通用日志格式%u – 远程用户身份验证 %U – 请求的URL路径 %v – 本地服务器名 %D – 处理请求的时间(以毫秒为单位) %T – 处理请求的时间(以秒为单位) %I (大写的i) – 当前请求的线程名称此外,您可以指定以下别名来设置为普遍使用的模式之一: common – %h %l %u %t "%r" %s %b combined – %h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" 另外,还可以将request请求的查询参数、session会话变量值、cookie值或HTTP请求/响应头内容的变量值等内容写入到日志文件。它仿照了apache的语法: %{XXX}i xxx代表传入的头(HTTP Request)%{XXX}o xxx代表传出的响应头(Http Resonse) %{XXX}c xxx代表特定的Cookie名 %{XXX}r xxx代表ServletRequest属性名%{XXX}s xxx代表HttpSession中的属性名
『柒』 windows如何查看tomcat日志
1、windows查看tomcat日志,首先打开*.log查看里面的内容,Cataline引擎的日志文件,文件名专catalina.日期.log。
『捌』 tomcat日志文件会导致内存溢出吗
VM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;专非堆是留给属JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。 一、内存溢出类型 1、java.lang.OutOfMemoryError: PermGen space J..
『玖』 tomcat日志文件这么看
命令为:tail -f catalina.outtail 命令用途从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。语法标准语法tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]要以逆序显示行tail [ -r ] [ -n Number ] [ File ]描述tail 命令从指定点开始将 File 参数指定的文件写到标准输出。如果没有指定文件,则会使用标准输入(就是显示你在键盘输入)。 Number 变量指定将多少单元写入标准输出。 Number 变量的值可以是正的或负的整数。如果值的前面有 +(加号),从文件开头指定的单元数开始将文件写到标准输出。如果值的前面有 -(减号),则从文件末尾指定的单元数开始将文件写到标准输出。如果值前面没有 +(加号)或 -(减号),那么从文件末尾指定的单元号开始读取文件。Number 变量用于确定计数的起点的单元类型由 -b、-c、-k、-m 以及 -n 标志确定。如果没有指定其中的任何一个标志,那么 tail 命令就会读取指定文件的最后十行,并将其写到标准输出。这与在命令行输入 -n 10 是相同的。-m 标志在单字节和双字节字符环境中提供了一致的结果。当输入是包含多字节字符的文本文件时应谨慎使用 -c 标志,因为产生的输出可能不从字符边界开始。标志-b Number从 Number 变量表示的 512 字节块位置开始读取指定文件。-c Number从 Number 变量表示的字节位置开始读取指定文件。-f如果输入文件是常规文件或如果 File 参数指定 FIFO(先进先出),那么 tail 命令不会在复制了输入文件的最后的指定单元后终止,而是继续从输入文件读取和复制额外的单元(当这些单元可用时)。如果没有指定 File 参数,并且标准输入是管道,则会忽略 -f 标志。tail -f 命令可用于监视另一个进程正在写入的文件的增长。-k Number从 Number 变量表示的 1KB 块位置开始读取指定文件。-m Number从 Number 变量表示的多字节字符位置开始读取指定文件。使用该标志提供在单字节和双字节字符代码集环境中的一致结果。-n Number从 Number 变量表示的行位置开始读取指定文件。-r从文件末尾以逆序方式显示输出。-r 标志的缺省值是以逆序方式打印整个文件。如果文件大于 20,480 字节,那么 -r 标志只显示最后的 20,480 字节。-r 标志只有与 -n 标志一起时才有效。否则,就会将其忽略。退出状态该命令返回下列的退出值:0成功完成。