This commit is contained in:
oneao committed 2025-11-24 17:31:41 +08:00
1 parent a917be08d1
commit a9ea500cd4
12 files changed
+18209 -21

No files matched your search

+30 -19
View File
@@ -1,33 +1,44 @@
import pandas as pd import pandas as pd
import random import random
import string import string
from datetime import datetime, timedelta
# 配置 rows = 4000
rows = 10000
cols = 20
# 生成列名 # 列名
columns = [f"列{i+1}" for i in range(cols)] columns = ["箱号", "箱型", "制造日期"]
# 箱型列表
container_types = ["20GP", "40GP", "40HQ", "45HQ"]
# 随机日期函数(生成 2000-01-01 到 2024-12-31)
def random_date():
start_date = datetime(2000, 1, 1)
end_date = datetime(2024, 12, 31)
delta = end_date - start_date
rand_days = random.randint(0, delta.days)
return (start_date + timedelta(days=rand_days)).strftime("%Y-%m-%d")
# 随机生成箱号(4字母 + 7数字)
def random_conno():
prefix = ''.join(random.choices(string.ascii_uppercase, k=4))
number = ''.join(random.choices(string.digits, k=7))
return prefix + number
# 生成数据 # 生成数据
data = [] data = []
for _ in range(rows): for i in range(rows):
row = [] 箱号 = random_conno()
for _ in range(cols): 箱型 = random.choice(container_types)
# 随机数字或者随机字符串 制造日期 = random_date()
if random.random() < 0.5:
row.append(random.randint(1, 10000)) # 随机数字 data.append([箱号, 箱型, 制造日期])
else:
row.append(''.join(random.choices(string.ascii_uppercase, k=5))) # 随机5个字母
data.append(row)
# 创建 DataFrame # 创建 DataFrame
df = pd.DataFrame(data, columns=columns) df = pd.DataFrame(data, columns=columns)
# 保存 Excel # 保存 Excel 和 CSV
df.to_excel("随机20列10000行.xlsx", index=False) df.to_excel("箱数据4000行2.xlsx", index=False)
df.to_csv("箱数据4000行2.csv", index=False, encoding="utf-8-sig")
# 或者保存 CSV
df.to_csv("随机20列10000行.csv", index=False, encoding='utf-8-sig')
print("生成完成!") print("生成完成!")
File diff suppressed because it is too large. Load diff
Binary file not shown.
File diff suppressed because it is too large. Load diff
Binary file not shown.
File diff suppressed because it is too large. Load diff
Binary file not shown.
+1 -1
View File
@@ -32,7 +32,7 @@ func InitLog() {
} }
} }
logger := hertzzap.NewLogger(hertzzap.WithZapOptions(zap.AddCaller(), zap.AddCallerSkip(3))) logger := hertzzap.NewLogger(hertzzap.WithCores([]hertzzap.CoreConfig{}))
lumberjackLogger := &lumberjack.Logger{ lumberjackLogger := &lumberjack.Logger{
Filename: fileName, Filename: fileName,
+115
View File
@@ -0,0 +1,115 @@
package log
import (
"os"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
type Option interface {
apply(cfg *config)
}
type ExtraKey string
type option func(cfg *config)
func (fn option) apply(cfg *config) {
fn(cfg)
}
type CoreConfig struct {
Enc zapcore.Encoder
Ws zapcore.WriteSyncer
Lvl zapcore.LevelEnabler
}
type config struct {
extraKeys []ExtraKey
coreConfigs []CoreConfig
zapOpts []zap.Option
extraKeyAsStr bool
}
// defaultCoreConfig default zapcore config: json encoder, atomic level, stdout write syncer
func defaultCoreConfig() *CoreConfig {
// default log encoder
enc := zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig())
// default log level
lvl := zap.NewAtomicLevelAt(zap.InfoLevel)
// default write syncer stdout
ws := zapcore.AddSync(os.Stdout)
return &CoreConfig{
Enc: enc,
Ws: ws,
Lvl: lvl,
}
}
// defaultConfig default config
func defaultConfig() *config {
return &config{
coreConfigs: []CoreConfig{*defaultCoreConfig()},
zapOpts: []zap.Option{},
extraKeyAsStr: false,
}
}
// WithCoreEnc zapcore encoder
func WithCoreEnc(enc zapcore.Encoder) Option {
return option(func(cfg *config) {
cfg.coreConfigs[0].Enc = enc
})
}
// WithCoreWs zapcore write syncer
func WithCoreWs(ws zapcore.WriteSyncer) Option {
return option(func(cfg *config) {
cfg.coreConfigs[0].Ws = ws
})
}
// WithCoreLevel zapcore log level
func WithCoreLevel(lvl zap.AtomicLevel) Option {
return option(func(cfg *config) {
cfg.coreConfigs[0].Lvl = lvl
})
}
// WithCores zapcore
func WithCores(coreConfigs ...CoreConfig) Option {
return option(func(cfg *config) {
cfg.coreConfigs = coreConfigs
})
}
// WithZapOptions add origin zap option
func WithZapOptions(opts ...zap.Option) Option {
return option(func(cfg *config) {
cfg.zapOpts = append(cfg.zapOpts, opts...)
})
}
// WithExtraKeys allow you log extra values from context
func WithExtraKeys(keys []ExtraKey) Option {
return option(func(cfg *config) {
for _, k := range keys {
if !InArray(k, cfg.extraKeys) {
cfg.extraKeys = append(cfg.extraKeys, k)
}
}
})
}
// WithExtraKeyAsStr convert extraKey to a string type when retrieving value from context
// Not recommended for use, only for compatibility with certain situations
//
// For more information, refer to the documentation at
// `https://pkg.go.dev/context#WithValue`
func WithExtraKeyAsStr() Option {
return option(func(cfg *config) {
cfg.extraKeyAsStr = true
})
}
+50
View File
@@ -0,0 +1,50 @@
// Copyright 2022 CloudWeGo Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package log
import (
"github.com/cloudwego/hertz/pkg/common/hlog"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
// InArray check if a string in a slice
func InArray(key ExtraKey, arr []ExtraKey) bool {
for _, k := range arr {
if k == key {
return true
}
}
return false
}
func hLevelToZapLevel(level hlog.Level) zapcore.Level {
var lvl zapcore.Level
switch level {
case hlog.LevelTrace, hlog.LevelDebug:
lvl = zap.DebugLevel
case hlog.LevelInfo:
lvl = zap.InfoLevel
case hlog.LevelWarn, hlog.LevelNotice:
lvl = zap.WarnLevel
case hlog.LevelError:
lvl = zap.ErrorLevel
case hlog.LevelFatal:
lvl = zap.FatalLevel
default:
lvl = zap.WarnLevel
}
return lvl
}
+10 -1
View File
@@ -5,8 +5,8 @@ import (
"cn/oneao/base-go/db" "cn/oneao/base-go/db"
"cn/oneao/base-go/log" "cn/oneao/base-go/log"
"cn/oneao/base-go/utils/idgen" "cn/oneao/base-go/utils/idgen"
"github.com/cloudwego/hertz/pkg/app/server" "github.com/cloudwego/hertz/pkg/app/server"
"github.com/cloudwego/hertz/pkg/common/hlog"
"github.com/hertz-contrib/requestid" "github.com/hertz-contrib/requestid"
) )
@@ -29,6 +29,15 @@ func main() {
log.InitLog() log.InitLog()
type User struct {
Name string
Age int
}
u := User{"tom", 20}
hlog.Info(u)
register(h) register(h)
h.Spin() h.Spin()
} }