`
thirdson
  • 浏览: 4946 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

百e购开发日记(二)

阅读更多

e 购开发日记(二)

Logging – 系统日记

查看上一回:部署

Logging, 如果你使用过 java 世界里面的 Log4j 那么到 Python 里的就不会太陌生,打日记的一般原则是:按照业务逻辑分模块打 Logging, 不要一股脑的把所有的日记都打到一块; 不要打无意义的日记,当处理的数据量增大的时候可能带来性能问题;按时自动的回滚日记,很多系统往往是 7x24 小时,长年累月的往一个文件里面输入日记会爆掉,在做技术支持的时候往往让你恼火,一般 logging 保存个 5~7 天左右就可以删除,防止磁盘空间不够,小插曲,银行系统里面的文件数据都要每天备份而且要保存 7 年之久。回正传,现在的百 e , 有两个级别的日记输出,一个是 Apache 服务器的日记输出,一个是系统正常运行时候的日记输出。

Apache 的使用他自己的日记配置方式, 在你的节点里面添加如下配置:

 

ErrorLog /{{YOUR_DIR}}/{{NAME}}.error-log

CustomLog /{{YOUR_DIR}} /{{NAME}}.access-log combined 
 

 

Python 的自己一套 Logging 配置有点诡异。有三个基本的配置要点: loggers, handlers, formatters; 名字直观, loggers 是程序里面要引用的; handlers 是如何处理的比如是写到文件中, 还是发送到 Email 里面; formatters 就是输出日记的格式了。 配置文件的一般规范是,首先定义好全文要使用的 logger, handler formatter:

 

[loggers]

keys: root,one

[handlers]

keys: console,syslog ,one

[formatters]

keys: detailed,simple 
 

如上面所示, 标示全文可以引用两中类型的日记, 一个是 root, 一个是 one.

下面就是配置日记的格式:

 

[formatter_simple]

format: %(name)s:%(levelname )s:  %(message)s 
 

 

[formatter_simple]

format: %(name)s:%(levelname )s:  %(message)s 
 

 

具体的配置可以参照官方的文档。

比较重要的就是 handler 的配置, 他决定你的日记到底是如何处理的。

首先最基本的就是,直接输出到控制台的:

[handler_console]

class: StreamHandler

args : []

formatter: simple 
 

这个是不推荐使用,输出到控制台没有太大的意义。 一般我是推荐使用

TimedRotatingFileHandler 顾名思义就是定时的自动备份, 还有一个就是 RotatingFileHandler 下面就以 TimedRotatingFileHandler 为例:

 

 

[handler_syslog]

class: handlers.TimedRotatingFileHandler

args: ["/{{YOUR_DIR}}/root.log","midnight",5] 
 

 

上面的配置的意思就是,每天在晚上自动备份日记,日记最多保存五天, 比如今天是 4/15 那么昨天的日记会备份到: root.log.2010-04-15.

 

而我们在程序中真正要使用的还需要进一步配置:

 

[logger_root]

level: WARNING

handlers: syslog 
 

 

这个配置表示程序里的 root 日记的级别是 WARNING, 他的处理方式是 syslog

下面的工作就是在 Django 初始化的时候将我们的配置设定好( settings.py ):

import logging.config

logging.config.fileConfig(“{{YOUR_DIR}}/logging.conf”) 
 

 

使用的时候:

import logging

logger.getLogger(“root”)

logger.error(‘------------------’) 
 

 

下一讲将是如何定义系统的 Job, 很多的系统不是完全实时的, J2EE 平台下我们可能会依赖于 JMS  实现系统的异步交互,还有更普遍的是通过定时启动批量处理 JOB 甚至有的是通过定时的 FTP 文件进行不同系统间的交流,反正条条达到通罗马。

0
0
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2

    SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2SAP 开发日记2

    NC开发日记(2010)

    这是我的原创资源,是我三年的NC开发的心得,

    MOSS 2007开发日记

    以下是对"MOSS 2007开发日记"中可能涉及的关键知识点的详细解释: 1. **SharePoint架构**:理解MOSS 2007的基础架构至关重要,包括前端Web服务器、应用服务器、数据库服务器和客户端组件。这些组件如何协同工作对于...

    SAP 开发日记 SAP 开发日记SAP 开发日记

    SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记SAP 日记

    前端开发-日记.rar

    前端开发-日记.rar前端开发-日记.rar前端开发-日记.rar前端开发-日记.rar前端开发-日记.rar前端开发-日记.rar前端开发-日记.rar前端开发-日记.rar前端开发-日记.rar前端开发-日记.rar前端开发-日记.rar前端开发-日记...

    深入体验Java+Web项目开发(开发日记)2

    本开发日记将分为几个部分,逐一解析这些技术要点。 首先,Java作为后端开发的主要语言,其面向对象的特性使得它在处理复杂业务逻辑时具有优势。理解Java的基础语法、类与对象、接口、继承和多态性是必不可少的。...

    windows mobile 开发日记+视频

    本资料“Windows Mobile 开发日记+视频”将引领你深入理解Windows Mobile的开发流程。通过开发日记,你可以了解到以下关键知识点: 1. **环境搭建**:首先,你需要安装Visual Studio,选择支持Windows Mobile开发的...

    深入体验Java+Web项目开发(开发日记)1

    深入体验Java+Web项目开发(开发日记)的源码和第一,二章内容和课件!

    网站开发日记(11)

    博文链接:https://dodomail.iteye.com/blog/245758

    一个嵌入式工程师的stm32开发日记

    嵌入式工程师是指那些专注于在特定硬件平台上进行软件开发和系统集成的专业人员。...作者通过这份开发日记,不仅记录了自己在STM32开发上的点点滴滴,也为其他同行或爱好者提供了一条学习和思考的路径。

    Android代码-移动日记本功能包含传统的日记本和音频日记视频日记实现私密日记和普通日记。.zip

    在Android平台上,开发一款移动日记本应用是一种常见的实践,它为用户提供了一种便捷的方式来记录他们的日常生活,情感体验,以及重要事件。这款名为"Diary"的应用不仅包含了传统的文本日记功能,还创新性地集成了...

    安卓开发实习日记参考.doc

    安卓开发实习日记参考.doc

    安卓超级日记本

    《安卓超级日记本:融合科技与记录的艺术》 在当今数字化时代,个人记录的重要性日益凸显,而“安卓超级日记本”作为一个集成了科大讯飞语音识别和分享功能的日记应用,无疑为用户提供了全新的日记体验。这款应用...

    社交网站后端项目开发日记(一)(csdn)————程序.pdf

    "社交网站后端项目开发日记(一)" 本文主要介绍了社交网站后端项目的开发日记,涵盖了项目的基本概念、技术栈选型、项目搭建、依赖管理、SpringBoot基础知识等方面。 一、项目概述 社交网站后端项目旨在开发一个...

    旅游日记APP的设计与开发.pdf

    本篇文章将深入探讨一款旨在为旅游爱好者提供全面服务的旅游日记APP的设计与开发。该APP集旅程记录、兴趣推荐、多媒体日记分享、旅程规划等功能于一体,为用户量身打造个性化的旅游体验。 ### 一、旅游日记APP的...

    应用SQLite开发简易心语日记源码

    本项目"应用SQLite开发简易心语日记源码"旨在教你如何利用SQLite创建一个简单的日记应用,实现日记的添加、删除、修改和查询功能。这对于理解和实践Android中的本地数据存储至关重要。 SQLite是一个轻量级的、开源...

    QT(C++)开发小众日记app项目-QtDiary.zip

    QT(C++)开发小众日记app项目_QtDiary.zip QT(C++)开发小众日记app项目_QtDiary.zip QT(C++)开发小众日记app项目_QtDiary.zip QT(C++)开发小众日记app项目_QtDiary.zipQT(C++)开发小众日记app项目_QtDiary....

    软件开发实习日记

    自己写的C#和.net实习日记,没一篇都是自己经历并记录的,对于快毕业要写实习日记的朋友有帮助。

    九宫格日记(J2EE开发)

    在J2EE平台上开发九宫格日记,意味着我们需要利用Java后端技术、数据库管理和Web前端技术来构建一个完整的应用程序。 首先,我们要理解J2EE(Java Platform, Enterprise Edition)框架。J2EE是Java企业级应用的标准...

Global site tag (gtag.js) - Google Analytics