`

weblogic日志无法分割,weblogic日志分割,weblogic集群日志分割

阅读更多

weblogic日志无法分割,weblogic日志分割,weblogic集群日志分割

 

 

================================

©Copyright 蕃薯耀 2018年10月19日

http://fanshuyao.iteye.com/

 

一、Log4j简介

Log4j有三个主要的组件:

Loggers(记录器):日志类别

Appenders (输出源):日志要输出的位置

Layouts(布局):日志格式化输出

 

1、Loggers

Loggers组件在此系统中被分为五个级别:

DEBUG、INFO、WARN、ERROR、FATAL。

这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条日志信息的重要程度。

Log4j只输出级别不低于设定级别的日志信息,假设Loggers级别设定为INFO,则INFO、WARN、ERROR和FATAL级别的日志信息都会输出,而级别比INFO低的DEBUG则不会输出。

 

2、Appenders

允许把日志输出到不同的地方,如控制台(Console)、文件(Files)等,可以根据天数或者文件大小产生新的文件,可以以流的形式发送到其它地方等等。

常使用的类如下:

org.apache.log4j.ConsoleAppender(控制台)

org.apache.log4j.FileAppender(文件)

org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

 

配置模式:

log4j.appender.appenderName = className

 

3、Layouts

格式化自己的日志输出,Log4j可以在Appenders的后面附加Layouts来完成这个功能。

Layouts提供四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式。

 

常使用的类如下:

org.apache.log4j.HTMLLayout(以HTML表格形式布局)

org.apache.log4j.PatternLayout(可以灵活地指定布局模式)

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)

 

配置模式:

log4j.appender.appenderName.layout =className

 

二、详细配置说明

Log4j支持两种配置文件格式,一种是XML格式的文件,一种是properties属性文件。

下面以properties属性文件为例介绍log4j.properties的配置。

 

1、配置根Logger:

log4j.rootLogger = [ level ] , appenderName1, appenderName2, …(默认输出目的地,当前端传入类名)

log4j.additivity.org.apache=false:表示Logger不会在父Logger的appender里输出,默认为true。

level :设定日志记录的最低级别,值有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别,一般设置为INFO。

通过在这里设定级别,您可以控制应用程序中相应级别的日志信息的开关,比如在这里设定了INFO级别,则应用程序中所有DEBUG级别的日志信息将不会被打印出来。

appenderName:就是指定日志信息要输出到哪里。可以同时指定多个输出目的地,用逗号隔开。

例如:log4j.rootLogger=INFO,A,B,C

 

2、配置日志信息输出目的地(appender):

log4j.appender.appenderName = className

appenderName:自定义appderName,在log4j.rootLogger设置中使用;

className:可设值如下:

(1)org.apache.log4j.ConsoleAppender(控制台)

(2)org.apache.log4j.FileAppender(文件)

(3)org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

(4)org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

(5)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

 

(1)ConsoleAppender选项:

Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。

ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。

Target=System.err:默认值是System.out。

 

(2)FileAppender选项:

Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。

ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。

Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。

File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。

 

(3)DailyRollingFileAppender选项:

Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。

ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。

Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。

File=D:/logs/logging.log4j:指定当前消息输出到logging.log4j文件中。

DatePattern='.'yyyy-MM:每月滚动一次日志文件,即每月产生一个新的日志文件。当前月的日志文件名为logging.log4j,前一个月的日志文件名为logging.log4j.yyyy-MM。

另外,也可以指定按周、天、时、分等来滚动日志文件,对应的格式如下:

1)'.'yyyy-MM:每月

2)'.'yyyy-ww:每周

3)'.'yyyy-MM-dd:每天

4)'.'yyyy-MM-dd-a:每天两次

5)'.'yyyy-MM-dd-HH:每小时

6)'.'yyyy-MM-dd-HH-mm:每分钟

 

(4)RollingFileAppender选项:

Threshold=WARN:指定日志信息的最低输出级别,默认为DEBUG。

ImmediateFlush=true:表示所有消息都会被立即输出,设为false则不输出,默认值是true。

Append=false:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。

File=D:/logs/logging.log4j:指定消息输出到logging.log4j文件中。

MaxFileSize=100KB:后缀可以是KB, MB 或者GB。在日志文件到达该大小时,将会自动滚动,即将原来的内容移到logging.log4j.1文件中。

MaxBackupIndex=2:指定可以产生的滚动文件的最大数,例如,设为2则可以产生logging.log4j.1,logging.log4j.2两个滚动文件和一个logging.log4j文件。

 

3、配置日志信息的输出格式(Layout):

log4j.appender.appenderName.layout=className

className:可设值如下:

(1)org.apache.log4j.HTMLLayout(以HTML表格形式布局)

(2)org.apache.log4j.PatternLayout(可以灵活地指定布局模式)

(3)org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

(4)org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

(1)HTMLLayout选项:

LocationInfo=true:输出java文件名称和行号,默认值是false。

Title=My Logging: 默认值是Log4J Log Messages。

(2)PatternLayout选项:

ConversionPattern=%m%n:设定以怎样的格式显示消息。

 

格式化符号说明:

%p:输出日志信息的优先级,即DEBUG,INFO,WARN,ERROR,FATAL。

%d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}。

%r:输出自应用程序启动到输出该log信息耗费的毫秒数。

%t:输出产生该日志事件的线程名。

%l:输出日志事件的发生位置,相当于%c.%M(%F:%L)的组合,包括类全名、方法、文件名以及在代码中的行数。例如:test.TestLog4j.main(TestLog4j.java:10)。

%c:输出日志信息所属的类目,通常就是所在类的全名。

%M:输出产生日志信息的方法名。

%F:输出日志消息产生时所在的文件名称。

%L::输出代码中的行号。

%m::输出代码中指定的具体日志信息。

%n:输出一个回车换行符,Windows平台为"rn",Unix平台为"n"。

%x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。

%%:输出一个"%"字符。

另外,还可以在%与格式字符之间加上修饰符来控制其最小长度、最大长度、和文本的对齐方式。如:

1) c:指定输出category的名称,最小的长度是20,如果category的名称长度小于20的话,默认的情况下右对齐。

2)%-20c:"-"号表示左对齐。

 

3)%.30c:指定输出category的名称,最大的长度是30,如果category的名称长度大于30的话,就会将左边多出的字符截掉,但小于30的话也不会补空格。

 

三、Log4j配置举例

 

Log4j配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。

log4j.rootLogger=DEBUG,console,dailyFile,im

log4j.additivity.org.apache=true

 

# 控制台(console)

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.Threshold=DEBUG

log4j.appender.console.ImmediateFlush=true

log4j.appender.console.Target=System.err

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

 

# 日志文件(logFile)

log4j.appender.logFile=org.apache.log4j.FileAppender

log4j.appender.logFile.Threshold=DEBUG

log4j.appender.logFile.ImmediateFlush=true

log4j.appender.logFile.Append=true

log4j.appender.logFile.File=D:/logs/log.log4j

log4j.appender.logFile.layout=org.apache.log4j.PatternLayout

log4j.appender.logFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

 

# 发送日志到指定邮件

log4j.appender.mail=org.apache.log4j.net.SMTPAppender

log4j.appender.mail.Threshold=FATAL

log4j.appender.mail.BufferSize=10

log4j.appender.mail.From = xxx@mail.com

log4j.appender.mail.SMTPHost=mail.com

log4j.appender.mail.Subject=Log4J Message

log4j.appender.mail.To= xxx@mail.com

log4j.appender.mail.layout=org.apache.log4j.PatternLayout

log4j.appender.mail.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

 

# 应用于数据库

log4j.appender.database=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.database.URL=jdbc:mysql://localhost:3306/test

log4j.appender.database.driver=com.mysql.jdbc.Driver

log4j.appender.database.user=root

log4j.appender.database.password=

log4j.appender.database.sql=INSERT INTO LOG4J (Message) VALUES('=[%-5p] %d(%r) --> [%t] %l: %m %x %n')

log4j.appender.database.layout=org.apache.log4j.PatternLayout

log4j.appender.database.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

 

四、Log4j Weblogic集群配置

log4j.rootLogger = INFO, console, daily 

#输出到控件台
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = [${weblogic.Name}] %-d{yyyy-MM-dd HH:mm:ss} [%p][%l] %n%m%n%n

#每天生成一个文件
log4j.appender.daily = org.apache.log4j.DailyRollingFileAppender
log4j.appender.daily.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.daily.File = D:/logs/pro_name/${weblogic.Name}/pro_name-${weblogic.Name}.log
log4j.appender.daily.layout = org.apache.log4j.PatternLayout
log4j.appender.daily.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%p][%l] %n%m%n%n

 集群的配置和一般的配置有些不一样。

主要是在文件的输出路径加上了服务器的名称变量:${weblogic.Name}。为什么呢?

因为在集群中,当日志文件被多个应用服务器共同占用时,是不能按日期、大小分隔出来:当一个应用服务器要进行分割时,共同的日志文件被其它应用服务器锁定,导致分割失败。

所以需要将日志文件名加上服务器名称的变量,让每个应用服务器有自己独立的日志文件。这样才不会导致日志太大(如500M、1G以上大小)而打不开。同时日志文件过大,也会导致日志输出影响系统性能的问题。

 

================================

©Copyright 蕃薯耀 2018年10月19日

http://fanshuyao.iteye.com/

 

 

1
0
分享到:
评论
1 楼 蕃薯耀 2018-10-19  
Log4j配置,Log4j集群配置,Log4j Weblogic集群配置

==========
蕃薯耀

相关推荐

    weblogic集群部署文档

    weblogic集群部署文档 weblogic集群部署文档 weblogic集群部署文档

    WebLogic集群部署资料

    WebLogic集群部署是Oracle公司提供的企业级Java应用服务器在高可用性、可伸缩性和负载均衡方面的重要特性。本文将详细解析WebLogic集群的概念、优势、配置步骤以及单服务器和多服务器部署的区别。 首先,WebLogic...

    Weblogic集群配置手册 V1.0

    Weblogic集群配置手册 V1.0 本文档是关于Weblogic集群配置的详细手册,旨在指导用户在实际应用中配置Weblogic集群。该手册分为十个章节,涵盖了从安装Weblogic中间件到配置集群应用的所有步骤。 1. 安装WEBLOGIC...

    weblogic集群扩充 服务器应用 - 群集服务 - weblogic集群扩充

    weblogic集群扩充 服务器应用 - 群集服务 - weblogic集群扩充weblogic集群详细的搭建步骤,绝对手把手的教你部署weblogic服务器以及集群的扩容.zip

    weblogic的集群与配置图文方法

    本文主要介绍WebLogic集群的概念、配置过程和管理方法,希望能为需要了解或实施WebLogic集群的朋友们提供图文并茂的实用指南。 一、WebLogic集群概念及区别 WebLogic集群主要通过多个服务器实例共同工作,来提供...

    WebLogic集群配置和负载均衡的实现

    WebLogic集群配置和负载均衡的实现

    Weblogic集群介绍.

    在深入探讨WebLogic集群之前,有必要理解传统双机架构的局限性。传统的双机热备模式可能导致资源利用率不均,主机繁忙而备机空闲。此外,当一个服务器出现问题时,需要手动切换至另一台服务器,管理和维护过程繁琐,...

    WebLogic集群环境搭建

    WebLogic集群环境搭建的知识点主要包括以下几个方面: 1. WebLogic集群环境的概念 WebLogic集群是由多个运行同一WebLogic Server软件的服务器节点组成,可以提供高可用性和可扩展性的应用服务器环境。集群中的各个...

    weblogic的集群配置

    在实际操作中,理解WebLogic集群配置的细节至关重要,包括但不限于JDBC数据源、JMS队列和主题的集群配置,以及安全性、监控和日志记录等方面的设置。同时,了解如何管理和维护集群状态,处理可能出现的故障,也是...

    weblogic集群安装配置手册.docx

    WebLogic集群安装配置手册主要涵盖了在Linux环境下搭建WebLogic集群的详细步骤,旨在为IT同行提供一个简单易懂的安装指南。以下是对整个过程的详细解释: 1. **WebLogic域创建及配置** - **进入域配置目录**:首先...

    linux下weblogic集群部署

    在Linux环境下部署WebLogic集群是一项关键的任务,它涉及到服务器的配置、JDK的安装、WebLogic Server的安装以及集群的创建和管理。以下是一份详尽的步骤指南: 首先,确保系统环境满足WebLogic Server的运行需求。...

    weblogic11g多机集群配置

    WebLogic 11g 多机集群配置 WebLogic 11g 多机集群配置是指在多个服务器上安装和配置 WebLogic 11g 服务器,以实现高可用性和负载均衡。在本文中,我们将详细介绍如何配置 WebLogic 11g 多机集群,包括管理服务器、...

    weblogic集群部署文档.docx

    本文档主要介绍了如何在Windows和Linux操作系统上搭建WebLogic集群,包括WebLogic Server的安装、Domain的配置以及集群的创建和节点的添加。 首先,安装WebLogic Server的过程大致如下: 1. 在命令行中,定位到...

    weblogic集群设置完整版

    在“weblogic集群设置完整版”这个主题中,我们将深入探讨WebLogic集群的配置过程及其重要概念。 一、集群基础 WebLogic集群是由多个相互协作的WebLogic Server实例组成的集合,它们共享应用程序和服务,并且能够...

    linux + weblogic10.3.6 集群部署及配置

    在Linux环境下,部署WebLogic Server 10.3.6的集群是一项复杂而重要的任务,因为这涉及到多个服务器之间的协调工作,以实现高可用性和负载均衡。以下将详细阐述整个部署配置过程的关键步骤: 1. **环境准备**: - ...

    weblogic 集群与Coherence 集群之路

    WebLogic集群是通过多台服务器实例的集合来提供高可用性和负载均衡的。每台服务器实例都可以运行相同的应用,并通过网络连接共享资源和服务。当一台服务器出现故障时,其他服务器可以接管其工作,确保服务不间断。...

    Weblogic集群概念和配置

    以下将详细解释WebLogic集群的相关概念及其配置要点。 首先,Domain是WebLogic Server管理的基本单位,它是一个逻辑组织,包含了管理服务器、被管理服务器、机器、节点管理器以及可能存在的多个集群。Domain的配置...

    WebLogic集群与分布式

    而工具则是指用于管理和监控WebLogic集群的各种工具,比如WebLogic Administration Console、WLST(WebLogic Scripting Tool)和各种性能监控工具,这些工具可以帮助管理员进行集群配置、应用部署、日志查看和性能...

Global site tag (gtag.js) - Google Analytics