`
445822357
  • 浏览: 740847 次
文章分类
社区版块
存档分类
最新评论

系统运维(一):日志处理

 
阅读更多

日志主要用于记录程序运行的情况,以便于程序在部署之后的排错调试等等!也有利于将这些信息进行持久化,否则信息便会丢失。很多时候,系统出现的异常都是碰巧的,很难再现的,所以需要实时监控,记录运行日志信息。

介绍下日志工具:logging,log4j,commons-logging。

loggingjava自带的,在JDKjava.util.logging.*包是日志记录API

Log4jJDK Logging更加成熟,是日志记录标准。

commons-logging,是一个接口抽象,底层的实现可以自动替换:

如果当前存在log4j,则使用log4j来实现

否则,使用JDKlogging来实现

否则,使用其自身的简单实现

通常使用Commons-log接口,使用log4j实现

一个日志工具,至少应该包括以下几个组成部分:

1Logger

Logger按照布局中指定的格式把日志信息写入一个或多个输出源,Log4j允许开发人员定义多个Logger每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系

2Level

它还有一个重要的属性——日志级别。不管何种日志记录工具,大概包含如下几种日志级别,优先级由低到高:DEBUG,INFO,WARN,ERROR,FATAL

在程序中打印日志信息时,优先级别低于配置文件中指定的级别时,将不做任何处理;比如配置文件中指定优先级别是WARN,当程序中有代码logger.info(message),则对message不会进行处理(输出到控制台或者文件)

log4j中,使用

log4j.rootLogger=[级别][使用哪个appender]

log4.logger.[logger的名称]=[级别][使用哪个appender]

来对logger进行配置如果某个logger没有进行配置,那么就会使用rootLogger的配置信息。

3Appender

一个Appender表示一个输出的目的地Appendr可以是控制台、文本文件、XML文件或Socket。一个Logger可以拥有多个Appender,即可以将种信息输出到多个位置。

log4j中,使用

log4j.appender.[appender的名称]=[appender类名]

log4j.appender.[appender的名称].[appender的属性名]=[appender的属性值]

来对appender进行配置

4Layout

Layout组件负责格式化输出的日志信息,一个Appender只能有一个Layout

log4j中,使用

log4j.appender.[appender的名称].layout=[layout的类名]

log4j.appender.[appender的名称].layout.[layout的属性名]=[layout的属性名]

来对layout进行配置

log4j采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:

%m输出代码中指定的消息

%p输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

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

%c输出所属的类目,通常就是所在类的全名

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

%n输出一个回车换行符,Windows平台为“\r\n”Unix平台为“\n”

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

%l输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数

通过实例讲解日志处理过程

log4j.properties log4j的配置信息

###direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p %c{1}:%L - %m%n
 
#direct messages to file
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=d:/oa.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE}%5p %c{1}:%L - %m%n
 
#set log levels
log4j.rootLogger=warn,stdout, file
 
#对com.bjsxt目录及其子目录有效,如果不指明,则遵循log4j.rootLogger
log4j.logger.com.bjsxt =debug,stdout,file

在代码中应用

import org.apache.commons.logging.Log;  
import org.apache.commons.logging.LogFactory;  
import org.apache.log4j.Logger;  
  
public class Log4jTest {  
      
    private static Log logger = LogFactory.getLog(Log4jTest.class);  
      
    public static void main(String[] args) {  
          
            logger.debug("发现异常:异常信息是 非法登录,导致User对象为null");  
    }  
}  


控制台和d:/oa.log中的日志信息:

2013-08-1310:06:23 Log4jTest.main(Log4jTest.java:11)发现异常:异常信息是非法登录,导致User对象为null

对于日志的使用,还可以结合AOP(面向切面编程)的思想

通过代理模式进行使用,在我的这篇博客反射机制剖析(三): 谈谈代理模式是如何体现反射的有所讲解。

分享到:
评论

相关推荐

    【运维】每日信息系统巡检记录

    针对日常巡检的信息系统进行记录,这是信息系统记录的模板。 仅适用于信息系统的,没有服务器、机柜等硬件设备进行处理。

    1运维管理系统方案.doc

    记录日常运维日志信息; 服务器故障统计; 服务器软硬件信息统计; 服务进程管理; 将数据信息存储到数据库,并使用图形方式直观的展示出来; 权限、密码管理; 将数据生成报表。 运维管理系统的特点: 邮件和短信...

    CNUTCon上海 2018年全球运维技术大会PPT合集(34份).zip

    智能故障处理中的系统工程 支持百亿请求的运维技术实践 针对游戏经济系统异常的智能化监控实践 云存储运维实践 云报警通告系统的下一幕 一站式自助运维平台实践之路 一次微服务架构决策的案例 研发效能演进之路 新...

    可视化智能IT运维系统课件.pptx

    应用场景 运维主管 资源总览 容量规划 运行统计 IT基础设施运维工程师 故障处理 根源分析 设备监管 运行报告 告警通知 流程优化 业绩考核 决策分析 流量分析 业务系统 数据中心 应用系统运维工程师 性能监测 健康...

    服务器运维方案.docx

    服务器运维方案 为保官网的正常稳定运行,也为了更好的对服务器进行管理维护,特制定以下运维方案: 硬件系统管理 一、服务器运行稳定性 服务器在运往托管商处上架前,应对服务器的稳定性进行全面的测试,包括网站主...

    服务器运维管理手册.doc

    XXXX有限公司 服务器运维管理手册 XXXX有限公司 运维服务部 2012/8/30 一、 文档简介 2 二、 文档目的 3 三、 文档范围 3 四、 事件处理流程 3 五、 具体操作说明 4 1) 服务器硬件管理 4 2) 服务器系统管理 9 1....

    白泽自动化运维系统.zip

    其次,运维人员承担着日常监控与安全管理任务,他们借助各类工具持续监控系统的运行状态,及时发现并处理异常情况,预防服务中断。此外,运维还包括制定备份恢复策略,确保数据的安全性和可用性,以及实施网络安全...

    蓝鲸作业平台(Job)是一套运维基础操作管理系统具备海量任务并发处理能力.zip

    蓝鲸作业平台(Job)是一套运维脚本管理系统,具备海量任务并发处理能力。除了支持脚本执行、文件分发、定时任务等一系列基础运维场景以外,还支持通过流程调度能力将零碎的单个任务组装成一个自动化作业流程;而每个...

    人工智能+智能运维平台解决方案.pptx

    IT运维现状 基础架构:云化 应用: 微服务化 双态数据中心:传统架构+互联网架构 全新架构-系统复杂 运维对象:网络、主机、OS、存储、中间件、各类业务应用 数据多样化:日志、指标、告警、时间 … 运维对象、数据...

    【重磅】最新AIOps智能运维实践方案资料大合集(62份).zip

    日志易-数据驱动的智能运维平台 上海银行业务级智能运维实践 实践BSM运维,AIOps赋能业务价值实现 数据库智能运维(含手机端远程运维)建设实践 腾讯-为AIOps的普及而重生的基础监控 循序渐进推动运维数字化和智能化...

    人工智能+智能运维平台建设综合解决方案.pptx

    IT运维现状 基础架构:云化 应用: 微服务化 双态数据中心:传统架构+互联网架构 全新架构-系统复杂 运维对象:网络、主机、OS、存储、中间件、各类业务应用 数据多样化:日志、指标、告警、时间 … 运维对象、数据...

    服务器运维服务规范.doc

    2、通过CACTI 页面 查看相关服务器CPU、内存、负载、用户登录及网卡流量,如果任何一项的数值与上周同 一时间的数值发生较大差异 就需要查看系统日志找出原因. 3、建议每三个月修改所有服务器用户密码. 4、每月提交...

    简单操作-服务器运维手册.doc

    LIMS系统 服务器运维管理手册 2016-10-24 一、 文档简介 2 二、 文档目的 3 三、 文档范围 3 四、 事件处理流程 3 五、 具体操作说明 4 1) 服务器硬件管理 4 2) 服务器系统管理 8 1. Windows系统管理 8 文档简介 本...

    数据库项目组日常运维及应急故障处理手册.docx

    此问题,没有应急办法,只能按如下步骤处理: 1、对于10g及以上版本,看是否可以通过闪回进行恢复。 2、查看测试环境数据库,看其中是否有需要的数据。 3、使用备份进行恢复,此方法一般花费时间较长。 ...

    IBOS智慧建筑运维管理平台需求说明.docx

     日志模块 19  历史数据模块 19  文件模块 20  联动模块 21  通信模块 22  停车管理模块 23  消防模块 23  门禁模块 24  数据库链接库 25 5.2 、 视频流媒体服务端 25  流媒体服务端初始化 25 ...

    决战Nginx: 系统卷 - 高性能Web服务器详解与运维第三部分(保证能用)

    第3章 Nginx如何处理一个请求 第4章 服务器名字 第5章 协助用户操作Nginx的工具 第6章 5XX错误处理 第7章 使用TCMalloc优化Nginx 第8章 PCRE正则表达式 第9章 Nginx高可用的实现 第10章 10个QA 第2部分 ...

    从无到有搭建中小型互联网公司后台服务架构与运维架构

    系统的吞吐量,指系统在某一时间可以处理的数据总量,通常可以用系统每秒处理的总的数据量来衡量;系统的并发能力,指系统可以同时完成某一功能的能力,通常也用QPS(query per second)来衡量。 3、 高可用:系统的...

    基于ELKStack和SparkStreaming的日志处理平台设计

    希望对系统运维工程师、数据库工程师在实现数据平台集中式运维工作中有所帮助,读者还可以参考文章末尾给出的互联网公司在系统运维、日志处理工作中的实践经验,结合自身情况设计自己的方案。大数据时代,随着数据量...

    Splunk IT搜索引擎-系统管理的智能运维

    Splunk是一个IT数据引擎...Splunk支持对所有以文本形式存在的IT数据进行处理,如标准的syslog和非结构化的事件日志,snmp事件,xml文本,系统和应用配置等等。解放系统管理员的劳动力,为您创造更有价值的商业前瞻性!

    人工智能+智能运维平台解决方案(1).pptx

    OneAPM智能运维平台解决方案 服务器数据 存储数据 网络数据 应用数据 用户体验数据 流量数据 日志数据 交易数据 任意IT数据 OneAPM AIOps 大数据实时多维分析 机器学习 大规模事务处理 海量数据实时接入 服务分析 ...

Global site tag (gtag.js) - Google Analytics