Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk membangunkan sistem pengurusan log yang mudah menggunakan MySQL dan bahasa Go

Bagaimana untuk membangunkan sistem pengurusan log yang mudah menggunakan MySQL dan bahasa Go

王林
王林asal
2023-09-21 09:05:14922semak imbas

Bagaimana untuk membangunkan sistem pengurusan log yang mudah menggunakan MySQL dan bahasa Go

Cara menggunakan bahasa MySQL dan Go untuk membangunkan sistem pengurusan log mudah

Pengenalan:
Log sering digunakan dalam perisian pembangunan Ia merupakan komponen penting yang boleh membantu kami menjejaki masalah, merekodkan operasi pengguna, memantau prestasi sistem, dsb. Dalam artikel ini, saya akan mengajar anda cara membangunkan sistem pengurusan log mudah dengan menggabungkan bahasa MySQL dan Go, dan memberikan contoh kod khusus.

1. Persediaan persekitaran
Sebelum kita mula, kita perlu menyediakan persekitaran pembangunan. Mula-mula, pastikan anda telah memasang pangkalan data MySQL dan mencipta jadual log yang sepadan. Kedua, pasang versi terkini persekitaran pembangunan bahasa Go untuk memastikan kod anda boleh berjalan dengan betul.

2. Buat projek

  1. Buat direktori projek dan mulakan mod go di dalamnya:
rreee#🎜🎜 🎜 🎜#Buat fail main.go dan buka editor Kami akan menulis program utama dalam fail ini.
  1. 3 Sambung ke pangkalan data MySQL

Import pakej yang diperlukan dalam fail main.go.
  1. $ mkdir log_management_system
    $ cd log_management_system
    $ go mod init log_management_system
Mewujudkan sambungan ke pangkalan data MySQL dalam fungsi utama.
  1. package main
    
    import (
        "database/sql"
        "fmt"
        _ "github.com/go-sql-driver/mysql"
    )
  2. Di sini kami menggunakan dua pakej: database/sql dan github.com/go-sql-driver/mysql, The bekas ialah antara muka pangkalan data terbina dalam bahasa Go, dan yang terakhir ialah pemacu pangkalan data MySQL.

4 Cipta jadual log database/sqlgithub.com/go-sql-driver/mysql两个包,前者是Go语言内置的数据库接口,后者是MySQL数据库驱动。

四、创建日志表

  1. 在MySQL数据库中创建一个名为logs
Buat jadual bernama log dalam pangkalan data MySQL.
  1. func main() {
        db, err := sql.Open("mysql", "root:password@tcp(localhost:3306)/log?charset=utf8")
        if err != nil {
            panic(err.Error())
        }
        defer db.Close()
      
        err = db.Ping()
        if err != nil {
            panic(err.Error())
        }
      
        fmt.Println("Successfully connected to MySQL database")
        // 后续代码将在此处编写
    }
Laksanakan pernyataan SQL dalam fungsi utama untuk mencipta jadual log.

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    level VARCHAR(10) NOT NULL,
    message VARCHAR(255) NOT NULL,
    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
    5. Laksanakan fungsi menulis log dan pertanyaan
Melaksanakan fungsi menulis log.
  1. func main() {
        // 数据库连接代码...
    
        _, err = db.Exec(`CREATE TABLE IF NOT EXISTS logs (
            id INT AUTO_INCREMENT PRIMARY KEY,
            level VARCHAR(10) NOT NULL,
            message VARCHAR(255) NOT NULL,
            created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
        )`)
        if err != nil {
            panic(err.Error())
        }
    
        fmt.Println("Successfully created logs table")
        // 后续代码将在此处编写
    }
Melaksanakan fungsi menanyakan log.
  1. func insertLog(db *sql.DB, level string, message string) error {
        _, err := db.Exec(`INSERT INTO logs (level, message) VALUES (?, ?)`, level, message)
        return err
    }
Panggil fungsi untuk memasukkan log dan pertanyaan log dalam fungsi utama.


func queryLogs(db *sql.DB) ([]Log, error) {
    rows, err := db.Query(`SELECT * FROM logs ORDER BY created_at DESC`)
    if err != nil {
        return nil, err
    }
  
    defer rows.Close()
  
    logs := []Log{}
    for rows.Next() {
        var log Log
        err := rows.Scan(&log.ID, &log.Level, &log.Message, &log.CreatedAt)
        if err != nil {
            return nil, err
        }
      
        logs = append(logs, log)
    }
  
    return logs, nil
}

type Log struct {
    ID        int
    Level     string
    Message   string
    CreatedAt time.Time
}

6. Ringkasan #🎜🎜# Melalui pengenalan artikel ini, anda telah mempelajari cara menggunakan bahasa MySQL dan Go untuk membangunkan sistem pengurusan log yang mudah. Kami menyediakan persekitaran pembangunan, menyambungkan pangkalan data MySQL, mencipta jadual log, dan melaksanakan penulisan log dan fungsi pertanyaan. Saya harap artikel ini dapat memberikan sedikit rujukan atau bantuan untuk anda membangunkan sistem pengurusan log dalam projek sebenar. #🎜🎜#

Atas ialah kandungan terperinci Bagaimana untuk membangunkan sistem pengurusan log yang mudah menggunakan MySQL dan bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn