将慢日志转存到数据库

import re
import MySQLdb

host=‘10.76.45.7‘
port=3306
user=‘test‘
password=‘test‘
dbName=‘test‘

def loadSlowLogtoDb(mysqlConn,keyValueList):
    insertSql="insert into slowLog(     Rows_examined,Rows_sent,Thread_id,arg,cmd,db,fingerprint,host,ip,timestamp,user)     values(%s,%s,%s,%s,%s,%s,%s,%s,%s,from_unixtime(%s),%s ) " %     (keyValueList[‘Rows_examined‘],keyValueList[‘Rows_sent‘],keyValueList[‘Thread_id‘],keyValueList[‘arg‘],keyValueList[‘cmd‘],keyValueList[‘db‘],keyValueList[‘fingerprint‘],keyValueList[‘host‘],keyValueList[‘ip‘],keyValueList[‘timestamp‘],keyValueList[‘user‘])
    #print insertSql
    try:
        cursor = mysqlConn.cursor()
        cursor.execute(insertSql)
        mysqlConn.commit()
    except MySQLdb.Error, e:
                print "Error %s: %s" % (e.args[0], e.args[1])
                pass

def getConnection():
    try:
        conn=connection=MySQLdb.connect(host=host, port=port, user=user, passwd=password, db=dbName,connect_timeout=10)
        return conn
    except MySQLdb.Error, e:
            print "Error %s: %s" % (e.args[0], e.args[1])
        pass
    return None

slowFile = open(‘2330.slow.detail‘)
keyValueList={}
conn=getConnection()
for line in slowFile:
    if None != re.match("^\$VAR1 = {$",line):
        print "begin"
        keyValueList={}
    elif None != re.match("};",line):
        print "end"
        loadSlowLogtoDb(conn,keyValueList)
    else:
        #print line
        lineStrip=line.strip()
        lineLen=len(lineStrip)
        if lineStrip.endswith(‘,‘):
            lineWitoutLastComma=lineStrip[0:-1]
        else:
            lineWitoutLastComma=lineStrip
        #print lineStrip
        keyValuePair=re.split(‘ => ‘,lineWitoutLastComma)
        if len(keyValuePair)==1:
            keyValueList["arg"]="undefined"
            continue
        #print keyValuePair[0]
        #print keyValuePair[1]
        keyValueList[keyValuePair[0]]=keyValuePair[1]
时间: 2024-12-16 04:19:28

将慢日志转存到数据库的相关文章

关于log4net日志写入mysql数据库记录

网上关于log4net日志写入mysql数据库的博客感觉比较少,所以这边搞定之后先过来记录一下. 首先新建个项目,我命名是log4netDemo,然后需要引入两个dll,一个是mysql.dll,一个是log4net.dll.可以通过NuGet安装这两个dll,如下图 我这边mysql和log4net的版本分别是6.10.8和2.0.8,当然mysql更高版本的也是可以的. 然后在项目中新建一个log4net.config的配置文件,配置全文如下: <?xml version="1.0&q

ASP.NET实现弹出框真分页将复选框选择的数据存到数据库中(一)

ASP.NET实现弹出框真分页将复选框选择的数据存到数据库中,这个问题分一下几步走 1.将弹出框真分页后复选框选择的数据保存. 2.将弹出框保存的数据传到父页面上. 3.将数据在父页面上显示. 4.点击保存将信息存入数据库中. 首先来第一步将弹出框真分页后复选框选择的数据保存. 思路很简单就是先真分页,然后在点击下一页的时候扫描这一页所有点击复选框的数据保存到一个变量数组中.下面就是主要代码: ASP代码: <%@ Page Language="C#" AutoEventWire

.net的session详解 存储模式 存到数据库中 使用范围与大小限制 生命周期

Session又称为会话状态,是Web系统中最常用的状态,用于维护和当前浏览器实例相关的一些信息.举个例子来说,我们可以把已登录用户的用户名放在Session中,这样就能通过判断Session中的某个Key来判断用户是否登录,如果登录的话用户名又是多少. 我们知 道,Session对于每一个客户端(或者说浏览器实例)是"人手一份",用户首次与Web服务器建 立连接的时候,服务器会给用户分发一个 SessionID作为标识.SessionID是一个由24个字符组成的随机字符串.用户每次提

log4j 将日志记录到数据库

需要以下jar包: ---log4j commons-loggin-1.1.1.jar log4j-1.2.16.jar ---mysql mysql-connector-java-5.1.15-bin.jar ---log4j.properties配置内容 log4j.rootLogger=INFO,DATABASE #JDBC Appender log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.appender.

log4j教程 12、日志记录到数据库

log4j API提供 org.apache.log4j.jdbc.JDBCAppender 对象,它能够将日志信息在指定的数据库. JDBCAppender 配置: Property 描述 bufferSize 设置缓冲区的大小.默认大小为1 driver 设置驱动程序类为指定的字符串.如果没有指定驱动程序类,默认为sun.jdbc.odbc.JdbcOdbcDriver layout 设置要使用的布局.默认布局是org.apache.log4j.PatternLayout password

利用checkbox的到值,并且存到数据库修改的话要显示之前选择的

在前台当然是利用checkbox来得到复选框的语言:{% for language in languages%}<input type="checkbox" name="language" value='{{ language.id }}' >{{ language.name }}{% endfor %}而复选框如果是已经选的在前台就展示的是选择的,那么input的属性就应该有checked 那么就可以通过在前台if来判断language.id跟已经选择

log4j日志存储到数据库

一.前提条件 系统必须是使用LOG4J进行日志管理,否则方法无效. 系统必须包含commons-logging-xxx.jar,log4j-xxx.jar这两个JAR包,XXX为版本号. 二.操作步骤 1.创建日志表 要把日志持久化,必须在数据库中创建一张用来存储日志信息的表,表内字段为日志 的一个主要属性包括:操作类,执行方法,打印时间,日志级别,日志内容. CREATE TABLE `reslog` ( `LOGID` int(20) NOT NULL AUTO_INCREMENT, `CL

Yii2 将日志记录到数据库中

Yii2默认日志记录到文件中,通过配置log组件来重新将日志保存到数据库中 打开config目录下console.php文件,修改log配置 'log' => [ 'targets' => [ [ 'class' => 'yii\log\DbTarget', 'levels' => ['error', 'warning'], ], ], ], 打开cmd 命令行,进入Yii根目录,开始创建数据库 yii migrate [email protected]/log/migration

也用 Log4Net 之将日志记录到数据库的配置 (一)

也用 Log4Net  之将日志记录到数据库的配置 (一) 前段时间我一直想做一个通用一点的日志记录系统,可以便于不同的业务组调用进行日志记录及分析.本来打算着自己下手写一个,后面发现各业务组可能会需要不同的记录方式,比如利用数据库来记录,用txt的文件形式来记录,当然,这些都是最常用的记录方式.而且不同的业务组都希望有自己的记录数据表,不希望和其他业务组的数据混在一起.于是我先前设想的架构方式也就付之一炬了,因为不够灵活,而且实现难度大.周期长.恰在此时想起了之前做项目的时候用的 Log4Ne