sane logging defaults for go
# Aider chat conversation:
USER: getEnvAsInt and getEnvAsDuration implementations are missing, please provide them.
ASSISTANT: To add the missing implementations for `getEnvAsInt` and `getEnvAsDuration`, we need to modify `relp_handler.go`:
1. Add the `getEnvAsInt` function.
2. Add the `getEnvAsDuration` function.
Here are the *SEARCH/REPLACE* blocks:
relp_handler.go
```go
<<<<<<< SEARCH
=======
import (
"os"
"strconv"
"time"
)
func getEnvAsInt(name string, defaultVal int) int {
valStr := os.Getenv(name)
if val, err := strconv.Atoi(valStr); err == nil {
return val
}
return defaultVal
}
func getEnvAsDuration(name string, defaultVal time.Duration) time.Duration {
valStr := os.Getenv(name)
if val, err := time.ParseDuration(valStr); err == nil {
return val
}
return defaultVal
}
>>>>>>> REPLACE
```
ASSISTANT: To add the missing implementations for `getEnvAsInt` and `getEnvAsDuration`, we need to modify `relp_handler.go`:
1. Add the `getEnvAsInt` function.
2. Add the `getEnvAsDuration` function.
Here are the *SEARCH/REPLACE* blocks:
relp_handler.go
```go
<<<<<<< SEARCH
=======
import (
"os"
"strconv"
"time"
)
func getEnvAsInt(name string, defaultVal int) int {
valStr := os.Getenv(name)
if val, err := strconv.Atoi(valStr); err == nil {
return val
}
return defaultVal
}
func getEnvAsDuration(name string, defaultVal time.Duration) time.Duration {
valStr := os.Getenv(name)
if val, err := time.ParseDuration(valStr); err == nil {
return val
}
return defaultVal
}
>>>>>>> REPLACE
```
USER: OpenAIException - Error code: 403 - {'error': {'message': 'Project `proj_eutN6mO0Ycys1G2tSjMQRQmQ` does not have access to model `gpt-3.5-turbo`', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}
Model: gpt-3.5-turbo
API Base: https://api.openai.com
Messages: [{'role': 'system', 'content': 'You are an expert software engineer.\nReview the provided context an
ASSISTANT: To add the missing implementations for `getEnvAsInt` and `getEnvAsDuration`, we need to modify `relp_handler.go`:
1. Add the `getEnvAsInt` function.
2. Add the `getEnvAsDuration` function.
Here are the *SEARCH/REPLACE* blocks:
relp_handler.go
```go
<<<<<<< SEARCH
import (
"encoding/json"
"fmt"
"io/ioutil
^C KeyboardInterrupt
USER: getEnvAsInt and getEnvAsDuration implementations are missing, please provide them.
ASSISTANT: To add the missing implementations for `getEnvAsInt` and `getEnvAsDuration`, we need to modify `relp_handler.go`:
1. Add the `getEnvAsInt` function.
2. Add the `getEnvAsDuration` function.
Here are the *SEARCH/REPLACE* blocks:
relp_handler.go
```go
<<<<<<< SEARCH
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net"
"net/url"
"os"
"path/filepath"
"time"
"github.com/google/uuid"
)
=======
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net"
"net/url"
"os"
"path/filepath"
"strconv"
"time"
"github.com/google/uuid"
)
func getEnvAsInt(name string, defaultVal int) int {
valStr := os.Getenv(name)
if val, err := strconv.Atoi(valStr); err == nil {
return val
}
return defaultVal
}
func getEnvAsDuration(name string, defaultVal time.Duration) time.Duration {
valStr := os.Getenv(name)
if val, err := time.ParseDuration(valStr); err == nil {
return val
}
return defaultVal
}
>>>>>>> REPLACE
```
|
||
|---|---|---|
| tools | ||
| .gitignore | ||
| console_handler.go | ||
| custom_logger.go | ||
| event.go | ||
| go.mod | ||
| go.sum | ||
| handler.go | ||
| json_handler.go | ||
| Makefile | ||
| README.md | ||
| relp_handler.go | ||
| simplelog_test.go | ||
| TODO | ||
| webhook_handler.go | ||
simplelog
simplelog is an opinionated logging package designed to facilitate easy and structured logging in Go applications with an absolute minimum of boilerplate.
The idea is that you can add a single import line which replaces the
stdlib log/slog default handler, and solve the 90% case for logging.
Features
- if output is a tty, outputs pretty color logs
- if output is not a tty, outputs json
- supports delivering logs via tcp RELP (e.g. to remote rsyslog using imrelp)
- supports delivering each log message via a webhook
Installation
To use simplelog, first ensure your project is set up with Go modules:
go mod init your_project_name
Then, add SimpleLog to your project:
go get git.eeqj.de/sneak/go-simplelog
Usage
Below is an example of how to use SimpleLog in a Go application. This example is provided in the form of a main.go file, which demonstrates logging at various levels using structured logging syntax.
package main
import (
"log/slog"
_ "git.eeqj.de/sneak/go-simplelog"
)
func main() {
// log structured data with slog as usual:
slog.Info("User login attempt", slog.String("user", "JohnDoe"), slog.Int("attempt", 3))
slog.Warn("Configuration mismatch", slog.String("expected", "config.json"), slog.String("found", "config.dev.json"))
slog.Error("Failed to save data", slog.String("reason", "permission denied"))
}