如何在WEBLOGIC中设置weblogic日志输出设置入

将weblogic后台日志输出到文件中_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
将weblogic后台日志输出到文件中
上传于||文档简介
&&将​w​e​b​l​o​g​i​c​后​台​日​志​输​出​到​文​件​中
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢weblogic日志说明_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
weblogic日志说明
上传于||文档简介
&&w​e​b​l​o​g​i​c​日​志​说​明
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢5419人阅读
Java-编程语言(97)
前言在系列一 中, 有一个问题一直没有解决,就是部署到weblogic 中应用程序如何通过log4j写日志到文件中?这里仅仅使用log4j, 而不使用 commons-logging, 关于log4j 和commons-logging的区别和关联,请参考
一个web 项目实例这个实例很简单,就是定义一个servlet, 用来写日志1. 使用eclipse 创建一个动态web 项目, 导入log4j.jar 包2. 创建一个servlet 类/**
* @author oscar999
* @version V1.0
package com.oscar999;
import java.io.IOE
import java.io.PrintW
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.apache.log4j.L
import org.apache.log4j.PropertyC
public class LogServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void service(HttpServletRequest req, HttpServletResponse res) {
testLog4j();
PrintWriter out = res.getWriter();
out.println(&&Hr&&h1&Please check the Logs Are generated in .log or Not .....&);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
public void testLog4j() {
Logger log = Logger.getLogger(LogServlet.class);
PropertyConfigurator.configure(&log4j.properties&);
log.debug(&Debug info.&);
(&Info info&);
log.warn(&Warn info&);
log.error(&Error info&);
log.fatal(&Fatal info&);
3. 在web.xml 中添加servlet 配置&?xml version=&1.0& encoding=&UTF-8&?&
&!DOCTYPE web-app
PUBLIC &-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&
&/dtd/web-app_2_3.dtd&&
&display-name&logTestApp&/display-name&
&servlet-name&LogServlet&/servlet-name&
&servlet-class&com.oscar999.LogServlet&/servlet-class&
&load-on-startup&2&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&LogServlet&/servlet-name&
&url-pattern&/logServlet&/url-pattern&
&/servlet-mapping&
&welcome-file-list&
&welcome-file&index.html&/welcome-file&
&welcome-file&index.htm&/welcome-file&
&welcome-file&index.jsp&/welcome-file&
&welcome-file&default.html&/welcome-file&
&welcome-file&default.htm&/welcome-file&
&welcome-file&default.jsp&/welcome-file&
&/welcome-file-list&
&/web-app&4. 编写一个 log4j.properties 文件log4j.rootLogger=debug,stdout,logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=logfile.log
log4j.appender.logfile.MaxFileSize=512KB
log4j.appender.logfile.MaxBackupIndex=3
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n5.& 把log4j.properties文件放入 user_projects\domains\base_domain 下。(base_domain是这里使用的domain name, 如果domain name 不一样,应该知道要怎么做了)因为上面servlet 中,读取log4j& 的配置是 PropertyConfigurator.configure(&log4j.properties&);这样就直接到& base_domain的路径下去找log4j.properties。在log4j.properties配置产生的日志文件 logfile.log默认也会放到& base_domain目录下,也可以修改, 建议是可以放到 “base_domain\servers\AdminServer\logs” 这个目录下。6. 接下来通过 访问就可以了使用应用程序中的log4j.properties在上面的例子中, 我们使用了base domain 的根路径来放置log4j.properties .难道说就没有办法读到应用程序中的log4j?我们知道, 在Tomcat 中,可以在servlet 中通过
得到路径;weblogic 部署时不解压war 档,所以没有办法读到相应的路径。但是可以通过getServletContext().getResourceAsStream(file) 这个方法获取路径。(至于这个方法是直接取war 档里的文件,还是取 base_domain\servers\AdminServer\tmp\_WL_user 中对应的缓存文件就没有深究了).这里的例子是:先通过一个servlet 设置log4j 的相关配置(配置文件),在应用启动时就甚至好, 后面的调用就不再需要 设置这个了PropertyConfigurator.configure(&log4j.properties&); 。这里把 log4j.properties 放置在/WEB-INF/log4j.properties 路径下(如果放置在src下, 需确认打包时是否把这个文件放进了war 的classes 路径下)实现的步骤如下:1. 在web.xml 配置设置log4j 初始化的servlet.
&servlet-name&log4jLoader&/servlet-name&
&servlet-class&com.oscar999.Log4jInit&/servlet-class&
&init-param&
&param-name&log4j&/param-name&
&param-value&/WEB-INF/log4j.properties&/param-value&
&/init-param&
&load-on-startup&0&/load-on-startup&
&/servlet&2. 把log4j.properties放入/WEB-INF 路径下3. 完成com.oscar999.Log4jInit.java 的servlet, 设置log4j/**
* @author oscar999
* @version V1.0
package com.oscar999;
import java.io.IOE
import java.util.P
import javax.servlet.http.HttpS
import org.apache.log4j.PropertyC
public class Log4jInit extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init()
//1. apache tomcat use
* String prefix =getServletContext().getRealPath(&/&);
* String file = getInitParameter(&log4j&);
* System.out.println(&................set log4j start&);
* if(file != null) {
* PropertyConfigurator.configure(prefix+file);
//2. weblogic use
String logCfgFile = getInitParameter(&log4j&);
System.out.println(&==========set log4j start&);
if(logCfgFile!=null)
Properties ps= new Properties();
ps.load(getServletContext().getResourceAsStream(logCfgFile));
}catch(IOException e)
e.printStackTrace();
PropertyConfigurator.configure(ps);
4 测试的servlet 改成如下方式: /**
* @author oscar999
* @version V1.0
package com.oscar999;
import java.io.IOE
import java.io.PrintW
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.apache.log4j.L
import org.apache.log4j.PropertyC
public class LogServlet extends HttpServlet {
// static Log log = LogFactory.getLog(LogServlet.class);
private static final long serialVersionUID = 1L;
public void service(HttpServletRequest req, HttpServletResponse res) {
// testLog4j();
testLog4jByResourceStream();
PrintWriter out = res.getWriter();
out.println(&&Hr&&h1&Please check the Logs Are generated in .log or Not .....&);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
public void testLog4jByResourceStream() {
Logger log = Logger.getLogger(LogServlet.class);
log.debug(&Debug info By Resource Stream.&);
(&Info info By Resource Stream&);
log.warn(&Warn info By Resource Stream&);
log.error(&Error info By Resource Stream&);
log.fatal(&Fatal info By Resource Stream&);
如此, 就不需要往base domain 路径放 .properties 文件了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2428786次
积分:21098
积分:21098
排名:第259名
原创:433篇
转载:66篇
评论:238条
文章:41篇
阅读:150694
文章:28篇
阅读:40736
文章:14篇
阅读:42907
(4)(3)(4)(5)(3)(1)(1)(1)(2)(1)(3)(5)(4)(4)(1)(6)(5)(5)(8)(3)(2)(7)(14)(7)(5)(4)(3)(16)(8)(8)(4)(13)(20)(27)(5)(9)(9)(16)(1)(8)(5)(10)(2)(6)(18)(4)(1)(3)(1)(5)(12)(19)(5)(2)(3)(15)(11)(3)(2)(3)(6)(13)(2)(1)(3)(1)(2)(2)(1)(1)(2)(4)(3)(3)(4)(1)(6)(7)(4)(5)(5)(3)(15)(15)(7)(1)(1)(1)(5)7734人阅读
中间件(1)
服务器日志&
每个 WebLogic Server 实例将来自子系统和应用程序的所有消息写入位于本地主机上的服务器日志文件。默认情况下,服务器日志文件位于服务器实例根目录下的 logs 目录中;
例如D:\Oracle\Middleware\user_projects\domains\snails_domain\servers\AdminServer\logs\AdminServer.log,其中snails_domain
是在其中定位域的目录的名称,而
\AdminServer 是服务器的名称。
可在管理控制台的Gernal属性页中设置该文件的路径及名字,错误的输出的等级等。
每条日志消息都具有关联的严重程度级别。日志消息的级别大致说明其重要级别或紧急级别。WebLogic Server 具有从 TRACE 到 EMERGENCY 的预定义严重程度,在将日志请求调度给记录器时,会将对应严重程度转换为日志级别。日志级别有如下取值
可以在记录器和处理程序上设置日志严重程度级别。在记录器上进行设置时,任何处理程序都不会收到记录器已拒绝的事件。例如,如果在记录器上将日志级别设置为 NOTICE,则任何处理程序都不会收到 INFO 级别的事件。在处理程序上设置日志级别时,仅会对处理程序应用限制,而不会对其他程序应用限制。例如,为文件处理程序关闭 DEBUG 意味着不会将任何 DEBUG 消息写入日志文件,但会将 DEBUG 消息将写入标准输出。
DOMAIN日志&
除将消息写入服务器日志文件外,每个服务器实例还会将其一部分消息转发到域范围日志文件。默认情况下,服务器仅转发严重程度级别为 NOTICE 或更高的消息。虽然可以对转发哪些消息进行修改,但服务器永远不转发严重程度级别为 DEBUG 的消息。
域日志文件提供用于查看域整体状态的中央位置。域日志驻留在管理服务器的 logs 目录中。域日志文件的默认名称和位置是 DOMAIN_NAME\servers\ADMIN_SERVER_NAME\logs\DOMAIN_NAME.log,其中,DOMAIN_NAME 是在其中定位域的目录的名称,而 ADMIN_SERVER_NAME 是管理服务器的名称。
域日志中记录的时间戳是发出消息的服务器的时间戳。域日志中的日志记录不会按照其时间戳顺序写入;会在消息到达后立即将其写入。有可能受管服务器在一段时间内无法与管理服务器联系。在这种情况下,消息被缓冲在本地并在重新连接服务器之后发送到管理服务器。
HTTP访问日志&
在WebLogic中可以对用HTTP,HTTPS协议访问的服务器上的文件都做记录,该LOG文件默认的名字为Access.log,内容如下,该文件具体记录在某个时间,某个IP地址的客户端访问了服务器上的那个文件。&
127.0.0.1 - - [25/Feb/:58 +0800] &GET /weather HTTP/1.1& 302 0
127.0.0.1 - - [25/Feb/:58 +0800] &GET /weather/index.Html HTTP/1.1& 200 176&
HTTP访问日志的属性可在HTTP属性页中进行设置。
HTTP 子系统在文本文件中保留所有 HTTP 事务的日志。HTTP 访问日志的默认位置和滚动策略与服务器日志相同。可以为每个服务器或每个定义的虚拟主机设置用于定义 HTTP 访问日志行为的特性。
服务器实例如何将消息转发到域日志&
为将消息转发到域日志,每个服务器实例会广播其日志消息。服务器会广播除严重程度级别为DEBUG 的消息以外的所有消息和消息文本。
管理服务器会监听以上消息中的一部分消息,并将它们写入域日志文件。为监听这些消息,管理服务器在每台受管服务器中注册监听器。默认情况下,该监听器包含一个筛选器,仅允许将严重程度级别为 NOTICE 和更高级别的消息转发到管理服务器。具体机制参见下图
对于任何给定WebLogic Server 实例,可以覆盖默认筛选器并创建一个日志筛选器,从而将一组不同的消息集写入域日志文件。如果管理服务器不可用,则受管服务器继续将消息写入其本地的服务器日志文件。但在默认情况下,当重新连接到服务器时,并不会将断开连接期间写入的所有消息转发到域日志文件。受管服务器在缓冲区中保留指定数量的消息,从而在重新连接到服务器时可以将它们转发到管理服务器。在缓冲区中保留的消息数量由 LogMBean 上的 DomainLogBroadcasterBufferSize 特性配置。默认值为
1。如配置为使用默认值,则在重新连接管理服务器后,仅将最后记录的消息转发到该服务器。例如,如果管理服务器在两小时不可用之后恢复,则域日志中不包含这两小时内生成的任何消息。如果已配置大于 1 的值,则在受管服务器重新连接到管理服务器之后,会将对应数量的消息转发到域日志。
注意:这会导致在域日志文件中,具有较早时间戳的消息列在具有较晚时间戳的消息之后。当之前断开连接的受管服务器的缓冲区中消息刷新到管理服务器之后,即使这些消息是在域日志中原有消息之前生成的,它们也会直接追加到域日志中。&
日志消息格式&
在 WebLogic Server 实例向服务器日志文件中写入消息时,每条消息的第一行以 #### 开头,后跟该消息的特性。每个特性都括在尖括号中。
以下是服务器日志文件中一条消息的示例:
####&Sept 22, :51 AM EST& &Notice& &WebLogicServer& &MyComputer& &examplesServer& &main& &&WLS Kernel&& && &null& &4& &BEA-000360&&
&Server started in RUNNING mode&&
在此示例中,消息的特性为:按区域设置格式的时间戳、严重程度、子系统、计算机名、服务器名、线程 ID、用户 ID、事务 ID、诊断上下文 ID、原始时间值、消息 ID 和消息文本。(后面的消息特性部分中描述各个特性。)
如果一条消息不是在事务上下文中记录的,则即使不包含事务 ID,也会包含用于事务 ID 的尖括号。
如果该消息中包含一个堆栈跟踪,则该堆栈跟踪包含在消息文本中。WebLogic Server 为其写入的消息使用主机的默认字符编码。
标准输出和标准错误中输出的格式&
在 WebLogic Server 实例将一条消息写入标准输出时,该输出不包含 #### 前缀,也不包含服务器名、计算机名、线程 ID、用户 ID、事务 ID、诊断上下文 ID 和原始时间值字段。
以下示例说明如何将前一部分中的消息输出到标准输出中:&
&Sept 22, :10 AM EST& &Notice& &WebLogicServer& &BEA-000360& &Server started in RUNNING mode&&
在此示例中,消息特性为:按区域设置格式的时间戳、严重程度、子系统、消息 ID 和消息文本。&
图形界面操作&
登录weblogic后台进行相关操作
1.日志相关参数设置
左侧菜单:环境–&服务器
右侧菜单:服务器–&日志记录
只找到AdminServer.log、access.log,进行一些操作
如:设置日志文件的回滚,设置日志文件名等
2.日志查看
左侧菜单:环境–&服务器
右侧菜单:点击服务器名称
左侧菜单:诊断–&日志文件
右侧菜单:选中相关日志点击查看
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:205509次
积分:2564
积分:2564
排名:第11130名
原创:86篇
转载:33篇
评论:19条
(3)(1)(1)(3)(1)(1)(5)(6)(7)(6)(1)(2)(1)(1)(1)(3)(6)(16)(12)(1)(22)(7)(12)

我要回帖

更多关于 weblogic 日志 的文章

 

随机推荐