瀏覽代碼

chore: log cleanup

master
Blaz Smehov 1 周之前
父節點
當前提交
a88ff83b19
共有 13 個檔案被更改,包括 96 行新增55 行删除
  1. 二進制
      bridge
  2. +28
    -2
      build/docker-compose.dev.yml
  3. +28
    -8
      build/docker-compose.local.yml
  4. +0
    -27
      build/docker-compose.woodpecker.yml
  5. +28
    -2
      build/docker-compose.yaml
  6. 二進制
      decoder
  7. +2
    -3
      internal/app/location/app.go
  8. +1
    -1
      internal/pkg/api/middleware/logging.go
  9. +0
    -4
      internal/pkg/apiclient/auth.go
  10. +9
    -3
      internal/pkg/logger/logger.go
  11. +0
    -5
      internal/pkg/service/beacon_service.go
  12. 二進制
      location
  13. 二進制
      server

二進制
bridge 查看文件


+ 28
- 2
build/docker-compose.dev.yml 查看文件

@@ -63,12 +63,19 @@ services:
container_name: presense-decoder
env_file:
- ./env/presense-decoder.env
environment:
LOG_LEVEL: "info"
depends_on:
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
volumes:
- ../:/app
command: air --build.cmd "go build -buildvcs=false -o ./decoder ./cmd/decoder" --build.bin "./decoder"
@@ -81,16 +88,21 @@ services:
container_name: presense-server
env_file:
- ./env/presense-server.env
environment:
LOG_LEVEL: "info"
ports:
- "127.0.0.1:1902:1902"
depends_on:
valkey:
condition: service_started
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
volumes:
- ../:/app
command: air --build.cmd "go build -buildvcs=false -o ./server ./cmd/server" --build.bin "./server"
@@ -103,12 +115,19 @@ services:
container_name: presense-bridge
env_file:
- ./env/presense-bridge.env
environment:
LOG_LEVEL: "info"
depends_on:
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
volumes:
- ../:/app
command: air --build.cmd "go build -buildvcs=false -o ./bridge ./cmd/bridge" --build.bin "./bridge"
@@ -121,12 +140,19 @@ services:
container_name: presense-location
env_file:
- ./env/presense-location.env
environment:
LOG_LEVEL: "info"
depends_on:
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
volumes:
- ../:/app
command: air --build.cmd "go build -buildvcs=false -o ./location ./cmd/location" --build.bin "./location"


+ 28
- 8
build/docker-compose.local.yml 查看文件

@@ -50,64 +50,84 @@ services:
- ./init-scripts/create_topic.sh:/tmp/create_topic.sh
env_file:
- ./env/kafka-init.env
valkey:
image: valkey/valkey:9.0.0
container_name: valkey
ports:
- "127.0.0.1:6379:6379"

presense-decoder:
image: presense-decoder
container_name: presense-decoder
env_file:
- ./env/presense-decoder.env
environment:
LOG_LEVEL: "info"
depends_on:
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
presense-server:
image: presense-server
container_name: presense-server
env_file:
- ./env/presense-server.env
environment:
LOG_LEVEL: "info"
ports:
- "127.0.0.1:1902:1902"
depends_on:
valkey:
condition: service_started
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"

presense-bridge:
image: presense-bridge
container_name: presense-bridge
env_file:
- ./env/presense-bridge.env
environment:
LOG_LEVEL: "info"
depends_on:
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"

presense-location:
image: presense-location
container_name: presense-location
env_file:
- ./env/presense-location.env
environment:
LOG_LEVEL: "info"
depends_on:
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"

volumes:


+ 0
- 27
build/docker-compose.woodpecker.yml 查看文件

@@ -1,27 +0,0 @@
services:
woodpecker-server:
image: woodpeckerci/woodpecker-server:v1.0.2
ports:
- 8000:8000
volumes:
- woodpecker-data:/var/lib/woodpecker
environment:
- WOODPECKER_GITEA=true
- WOODPECKER_OPEN=true
- WOODPECKER_ADMIN=Smehov
- WOODPECKER_GITEA_URL=https://git.afasystems.it/
- WOODPECKER_GITEA_CLIENT=005e1420-b635-4d82-ac4b-70bfd61746ed
- WOODPECKER_GITEA_SECRET=rsfZ5jD4UcmrSl9mqutnHgO2eXBN-i8qNa-hil2SuMw=
- WOODPECKER_AGENT_SECRET=agent-secret
- WOODPECKER_HOST=http://10.8.0.53:8000

woodpecker-agent:
image: woodpeckerci/woodpecker-agent:v1.0.2
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WOODPECKER_SERVER=woodpecker-server:9000
- WOODPECKER_AGENT_SECRET=agent-secret

volumes:
woodpecker-data:

+ 28
- 2
build/docker-compose.yaml 查看文件

@@ -58,52 +58,78 @@ services:
container_name: presense-decoder
env_file:
- ./env/presense-decoder.env
environment:
LOG_LEVEL: "info"
depends_on:
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
presense-server:
image: afasystemadmin/ble-ai-localizer:server_v1
container_name: presense-server
env_file:
- ./env/presense-server.env
environment:
LOG_LEVEL: "info"
ports:
- "127.0.0.1:1902:1902"
depends_on:
valkey:
condition: service_started
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"

presense-bridge:
image: afasystemadmin/ble-ai-localizer:bridge_v1
container_name: presense-bridge
env_file:
- ./env/presense-bridge.env
environment:
LOG_LEVEL: "info"
depends_on:
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"

presense-location:
image: afasystemadmin/ble-ai-localizer:location_v1
container_name: presense-location
env_file:
- ./env/presense-location.env
environment:
LOG_LEVEL: "info"
depends_on:
kafka-init:
condition: service_completed_successfully
db:
condition: service_healthy
restart: always
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"

volumes:


二進制
decoder 查看文件


+ 2
- 3
internal/app/location/app.go 查看文件

@@ -84,7 +84,6 @@ func (a *LocationApp) Run(ctx context.Context) {
}
case <-locTicker.C:
settings := a.AppState.GetSettings()
slog.Info("current algorithm", "algorithm", settings.CurrentAlgorithm)
switch settings.CurrentAlgorithm {
case "filter":
pkglocation.GetLikelyLocations(a.AppState, a.KafkaManager.GetWriter("locevents"))
@@ -116,12 +115,12 @@ func (a *LocationApp) Run(ctx context.Context) {
}
}

slog.Info("AI algorithm", "count", inferred.Count, "items", len(inferred.Items))
slog.Debug("AI algorithm", "count", inferred.Count, "items", len(inferred.Items))
}
case msg := <-a.ChRaw:
pkglocation.AssignBeaconToList(msg, a.AppState)
case msg := <-a.ChSettings:
slog.Info("settings update", "msg", msg)
slog.Debug("settings update", "msg", msg)
a.AppState.UpdateSettings(msg)
}
}


+ 1
- 1
internal/pkg/api/middleware/logging.go 查看文件

@@ -30,7 +30,7 @@ func Logging(next http.Handler) http.Handler {
start := time.Now()
wrap := &responseWriter{ResponseWriter: w, status: http.StatusOK}
next.ServeHTTP(wrap, r)
slog.Info("request",
slog.Debug("request",
"method", r.Method,
"path", r.URL.Path,
"status", wrap.status,


+ 0
- 4
internal/pkg/apiclient/auth.go 查看文件

@@ -23,8 +23,6 @@ func GetToken(ctx context.Context, cfg *config.Config, client *http.Client) (str
formData.Set("username", cfg.HTTPUsername)
formData.Set("password", cfg.HTTPPassword)
formData.Set("audience", cfg.HTTPAudience)
fmt.Printf("formData: %+v\n", formData)
fmt.Printf("cfg.APIAuthURL: %+v\n", cfg.APIAuthURL)

req, err := http.NewRequest("POST", fmt.Sprintf("%s/realms/API.Server.local/protocol/openid-connect/token", cfg.APIAuthURL), strings.NewReader(formData.Encode()))
if err != nil {
@@ -44,7 +42,5 @@ func GetToken(ctx context.Context, cfg *config.Config, client *http.Client) (str
return "", err
}

fmt.Printf("token: %s\n", j.Token)

return j.Token, nil
}

+ 9
- 3
internal/pkg/logger/logger.go 查看文件

@@ -8,14 +8,20 @@ import (

// CreateLogger creates a logger writing to both stderr and the given file.
// If the file cannot be opened, returns a logger that writes only to stderr and a no-op cleanup.
// Callers can check whether logging to file is active if needed.
// Log level is controlled by the LOG_LEVEL env var (debug/info/warn/error); defaults to info.
func CreateLogger(fname string) (*slog.Logger, func()) {
lvl := &slog.LevelVar{}
if v := os.Getenv("LOG_LEVEL"); v != "" {
_ = lvl.UnmarshalText([]byte(v))
}
opts := &slog.HandlerOptions{Level: lvl}

f, err := os.OpenFile(fname, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
return slog.New(slog.NewJSONHandler(os.Stderr, nil)), func() {}
return slog.New(slog.NewJSONHandler(os.Stderr, opts)), func() {}
}
w := io.MultiWriter(os.Stderr, f)
logger := slog.New(slog.NewJSONHandler(w, nil))
logger := slog.New(slog.NewJSONHandler(w, opts))
cleanup := func() { f.Close() }
return logger, cleanup
}

+ 0
- 5
internal/pkg/service/beacon_service.go 查看文件

@@ -82,8 +82,6 @@ func LocationToBeaconService(msg model.HTTPLocation, db *gorm.DB, writer *kafka.
return
}

fmt.Printf("floor: %d\n", floor.FloorNumber)

if err := db.Create(&model.Tracks{
UUID: msg.ID,
Timestamp: time.Now(),
@@ -114,7 +112,6 @@ func LocationToBeaconService(msg model.HTTPLocation, db *gorm.DB, writer *kafka.
}

func LocationToBeaconServiceAI(msg model.HTTPLocation, db *gorm.DB, writer *kafka.Writer, ctx context.Context) {
fmt.Printf("msg: %+v\n", msg)
tracker, err := findTracker(msg, db)
if err != nil {
msg := fmt.Sprintf("Error in finding tracker: %v", err)
@@ -136,8 +133,6 @@ func LocationToBeaconServiceAI(msg model.HTTPLocation, db *gorm.DB, writer *kafk
return
}

// fmt.Printf("gw: %+v\n", gw)

if err := db.Create(&model.Tracks{UUID: tracker.ID, Timestamp: time.Now(), Gateway: gw.ID, GatewayMac: gw.MAC, Tracker: tracker.ID, Floor: gw.Floor, Building: gw.Building, TrackerMac: tracker.MAC, X: msg.X, Y: msg.Y, Z: msg.Z}).Error; err != nil {
msg := fmt.Sprintf("Error in saving distance for beacon: %v", err)
slog.Error(msg)


二進制
location 查看文件


二進制
server 查看文件


Loading…
取消
儲存