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
$ mkdir log_management_system $ cd log_management_system $ go mod init log_management_system
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" )
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/sql
和github.com/go-sql-driver/mysql
两个包,前者是Go语言内置的数据库接口,后者是MySQL数据库驱动。
四、创建日志表
logs
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") // 后续代码将在此处编写 }
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 );
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") // 后续代码将在此处编写 }
func insertLog(db *sql.DB, level string, message string) error { _, err := db.Exec(`INSERT INTO logs (level, message) VALUES (?, ?)`, level, message) return err }
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 }
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!