mirror of
https://gitee.com/johng/gf
synced 2026-06-07 02:12:11 +08:00
This pull request standardizes the use of the Go 1.18+ `any` type alias
instead of `interface{}` throughout the codebase. The change improves
code readability and aligns with modern Go best practices. The update
touches many files, including core data structures, code generation
templates, logging utilities, and test data, ensuring consistency across
all usages.
**Type alias migration to `any`:**
* Replaced all instances of `interface{}` with `any` in core data
structures such as `garray` and in generated model structs (e.g.,
`TableUser`, `User1`, `User2`) to modernize type usage.
[[1]](diffhunk://#diff-3a1259e160a4dfa5fe49dfe739fbdb986c0d0a2220a709882ea48d3ae1b8f911L31-R31)
[[2]](diffhunk://#diff-6c19859cb32c7516ea95ddc8f8235460818eb2f24d2204308e0d9e1b19e7d90fL15-R19)
[[3]](diffhunk://#diff-a15ba2f5e830b4833c47b902515a4f9e5a4f83a3707698f3229b307ec3776b41L15-R18)
[[4]](diffhunk://#diff-52e0837e84d49221d1b810d88fdf78221f36cffcd664fb42f8aba49a79b974dcL15-R19)
[[5]](diffhunk://#diff-11c3457d1a23a4ca6ecd00d6b856289774936b6a708384cf03aff164044e7546L15-R19)
[[6]](diffhunk://#diff-2cff9cf8e6a0cc34087326d8c8149c3bbaf74c76fdbdf5a73daed13cc04249e1L15-R19)
* Updated function signatures, method parameters, and return types from
`interface{}` to `any` in various parts of the codebase, including code
generation, service logic, and logging utilities (e.g., `mlog`).
[[1]](diffhunk://#diff-175edfeea54490b8fe4e18ffcbea5835efaf8f0b8acf623359073987cae7eb76L48-R55)
[[2]](diffhunk://#diff-2b1953fb78cf3593d8c2c7d911e95b65fd0b847c30ed0b4d167d16fe6d781235L54-R74)
[[3]](diffhunk://#diff-e001b7a4b63603b9b14f00de78a4d570bb76c5f57d856a24643f071032e12356L66-R73)
[[4]](diffhunk://#diff-5582954e8a9983988dc8854ad82067fb2ac6269b988e07357ad8db1dfec5f1a0L39-R41)
[[5]](diffhunk://#diff-c5d51d56f487779a2b6207c7ad26c7a20bbadcc846ce094fe60ab4cabff58c51L107-R107)
[[6]](diffhunk://#diff-f96e6a9fdb416eb1804ceaba1fe0ac637bff22c43837f8bb849c2366ce72d4a1L116-R121)
[[7]](diffhunk://#diff-f94c83a1b08ae060d9346f4a6031fc4a7b9a0b894e02d9afaa09018b6598eac0L112-R112)
[[8]](diffhunk://#diff-748b11dbe8828dd4c040ec23cae0b8fe57ecf0a2d1b7694ea39102294e633c64L36-R36)
[[9]](diffhunk://#diff-748b11dbe8828dd4c040ec23cae0b8fe57ecf0a2d1b7694ea39102294e633c64L74-R74)
[[10]](diffhunk://#diff-748b11dbe8828dd4c040ec23cae0b8fe57ecf0a2d1b7694ea39102294e633c64L96-R96)
**Generated code and templates:**
* Adjusted generated files and code generation templates to output `any`
instead of `interface{}` for relevant struct fields and function
signatures, ensuring that new code generation aligns with the updated
convention.
[[1]](diffhunk://#diff-6c19859cb32c7516ea95ddc8f8235460818eb2f24d2204308e0d9e1b19e7d90fL15-R19)
[[2]](diffhunk://#diff-a15ba2f5e830b4833c47b902515a4f9e5a4f83a3707698f3229b307ec3776b41L15-R18)
[[3]](diffhunk://#diff-52e0837e84d49221d1b810d88fdf78221f36cffcd664fb42f8aba49a79b974dcL15-R19)
[[4]](diffhunk://#diff-11c3457d1a23a4ca6ecd00d6b856289774936b6a708384cf03aff164044e7546L15-R19)
[[5]](diffhunk://#diff-2cff9cf8e6a0cc34087326d8c8149c3bbaf74c76fdbdf5a73daed13cc04249e1L15-R19)
[[6]](diffhunk://#diff-175edfeea54490b8fe4e18ffcbea5835efaf8f0b8acf623359073987cae7eb76L48-R55)
[[7]](diffhunk://#diff-e001b7a4b63603b9b14f00de78a4d570bb76c5f57d856a24643f071032e12356L66-R73)
[[8]](diffhunk://#diff-5582954e8a9983988dc8854ad82067fb2ac6269b988e07357ad8db1dfec5f1a0L39-R41)
**Container and utility updates:**
* Refactored the `garray` container implementation and related
constructors/methods to use `[]any` instead of `[]interface{}`, along
with corresponding function signatures.
[[1]](diffhunk://#diff-3a1259e160a4dfa5fe49dfe739fbdb986c0d0a2220a709882ea48d3ae1b8f911L31-R31)
[[2]](diffhunk://#diff-3a1259e160a4dfa5fe49dfe739fbdb986c0d0a2220a709882ea48d3ae1b8f911L52-R52)
[[3]](diffhunk://#diff-3a1259e160a4dfa5fe49dfe739fbdb986c0d0a2220a709882ea48d3ae1b8f911L62-R62)
[[4]](diffhunk://#diff-3a1259e160a4dfa5fe49dfe739fbdb986c0d0a2220a709882ea48d3ae1b8f911L73-R86)
[[5]](diffhunk://#diff-3a1259e160a4dfa5fe49dfe739fbdb986c0d0a2220a709882ea48d3ae1b8f911L96-R97)
[[6]](diffhunk://#diff-3a1259e160a4dfa5fe49dfe739fbdb986c0d0a2220a709882ea48d3ae1b8f911L107-R114)
[[7]](diffhunk://#diff-3a1259e160a4dfa5fe49dfe739fbdb986c0d0a2220a709882ea48d3ae1b8f911L124-R124)
[[8]](diffhunk://#diff-3a1259e160a4dfa5fe49dfe739fbdb986c0d0a2220a709882ea48d3ae1b8f911L135-R143)
[[9]](diffhunk://#diff-3a1259e160a4dfa5fe49dfe739fbdb986c0d0a2220a709882ea48d3ae1b8f911L167-R167)
These changes collectively modernize the codebase and prepare it for
future Go developments by using the idiomatic `any` type.
162 lines
4.9 KiB
Go
162 lines
4.9 KiB
Go
// Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
|
|
//
|
|
// This Source Code Form is subject to the terms of the MIT License.
|
|
// If a copy of the MIT was not distributed with this file,
|
|
// You can obtain one at https://github.com/gogf/gf.
|
|
|
|
package glog
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
)
|
|
|
|
// SetConfig set configurations for the defaultLogger.
|
|
func SetConfig(config Config) error {
|
|
return defaultLogger.SetConfig(config)
|
|
}
|
|
|
|
// SetConfigWithMap set configurations with map for the defaultLogger.
|
|
func SetConfigWithMap(m map[string]any) error {
|
|
return defaultLogger.SetConfigWithMap(m)
|
|
}
|
|
|
|
// SetPath sets the directory path for file logging.
|
|
func SetPath(path string) error {
|
|
return defaultLogger.SetPath(path)
|
|
}
|
|
|
|
// GetPath returns the logging directory path for file logging.
|
|
// It returns empty string if no directory path set.
|
|
func GetPath() string {
|
|
return defaultLogger.GetPath()
|
|
}
|
|
|
|
// SetFile sets the file name `pattern` for file logging.
|
|
// Datetime pattern can be used in `pattern`, eg: access-{Ymd}.log.
|
|
// The default file name pattern is: Y-m-d.log, eg: 2018-01-01.log
|
|
func SetFile(pattern string) {
|
|
defaultLogger.SetFile(pattern)
|
|
}
|
|
|
|
// SetLevel sets the default logging level.
|
|
func SetLevel(level int) {
|
|
defaultLogger.SetLevel(level)
|
|
}
|
|
|
|
// GetLevel returns the default logging level value.
|
|
func GetLevel() int {
|
|
return defaultLogger.GetLevel()
|
|
}
|
|
|
|
// SetWriter sets the customized logging `writer` for logging.
|
|
// The `writer` object should implements the io.Writer interface.
|
|
// Developer can use customized logging `writer` to redirect logging output to another service,
|
|
// eg: kafka, mysql, mongodb, etc.
|
|
func SetWriter(writer io.Writer) {
|
|
defaultLogger.SetWriter(writer)
|
|
}
|
|
|
|
// GetWriter returns the customized writer object, which implements the io.Writer interface.
|
|
// It returns nil if no customized writer set.
|
|
func GetWriter() io.Writer {
|
|
return defaultLogger.GetWriter()
|
|
}
|
|
|
|
// SetDebug enables/disables the debug level for default defaultLogger.
|
|
// The debug level is enabled in default.
|
|
func SetDebug(debug bool) {
|
|
defaultLogger.SetDebug(debug)
|
|
}
|
|
|
|
// SetAsync enables/disables async logging output feature for default defaultLogger.
|
|
func SetAsync(enabled bool) {
|
|
defaultLogger.SetAsync(enabled)
|
|
}
|
|
|
|
// SetStdoutPrint sets whether ouptput the logging contents to stdout, which is true in default.
|
|
func SetStdoutPrint(enabled bool) {
|
|
defaultLogger.SetStdoutPrint(enabled)
|
|
}
|
|
|
|
// SetHeaderPrint sets whether output header of the logging contents, which is true in default.
|
|
func SetHeaderPrint(enabled bool) {
|
|
defaultLogger.SetHeaderPrint(enabled)
|
|
}
|
|
|
|
// SetPrefix sets prefix string for every logging content.
|
|
// Prefix is part of header, which means if header output is shut, no prefix will be output.
|
|
func SetPrefix(prefix string) {
|
|
defaultLogger.SetPrefix(prefix)
|
|
}
|
|
|
|
// SetFlags sets extra flags for logging output features.
|
|
func SetFlags(flags int) {
|
|
defaultLogger.SetFlags(flags)
|
|
}
|
|
|
|
// GetFlags returns the flags of defaultLogger.
|
|
func GetFlags() int {
|
|
return defaultLogger.GetFlags()
|
|
}
|
|
|
|
// SetCtxKeys sets the context keys for defaultLogger. The keys is used for retrieving values
|
|
// from context and printing them to logging content.
|
|
//
|
|
// Note that multiple calls of this function will overwrite the previous set context keys.
|
|
func SetCtxKeys(keys ...any) {
|
|
defaultLogger.SetCtxKeys(keys...)
|
|
}
|
|
|
|
// GetCtxKeys retrieves and returns the context keys for logging.
|
|
func GetCtxKeys() []any {
|
|
return defaultLogger.GetCtxKeys()
|
|
}
|
|
|
|
// PrintStack prints the caller stack,
|
|
// the optional parameter `skip` specify the skipped stack offset from the end point.
|
|
func PrintStack(ctx context.Context, skip ...int) {
|
|
defaultLogger.PrintStack(ctx, skip...)
|
|
}
|
|
|
|
// GetStack returns the caller stack content,
|
|
// the optional parameter `skip` specify the skipped stack offset from the end point.
|
|
func GetStack(skip ...int) string {
|
|
return defaultLogger.GetStack(skip...)
|
|
}
|
|
|
|
// SetStack enables/disables the stack feature in failure logging outputs.
|
|
func SetStack(enabled bool) {
|
|
defaultLogger.SetStack(enabled)
|
|
}
|
|
|
|
// SetLevelStr sets the logging level by level string.
|
|
func SetLevelStr(levelStr string) error {
|
|
return defaultLogger.SetLevelStr(levelStr)
|
|
}
|
|
|
|
// SetLevelPrefix sets the prefix string for specified level.
|
|
func SetLevelPrefix(level int, prefix string) {
|
|
defaultLogger.SetLevelPrefix(level, prefix)
|
|
}
|
|
|
|
// SetLevelPrefixes sets the level to prefix string mapping for the defaultLogger.
|
|
func SetLevelPrefixes(prefixes map[int]string) {
|
|
defaultLogger.SetLevelPrefixes(prefixes)
|
|
}
|
|
|
|
// GetLevelPrefix returns the prefix string for specified level.
|
|
func GetLevelPrefix(level int) string {
|
|
return defaultLogger.GetLevelPrefix(level)
|
|
}
|
|
|
|
// SetHandlers sets the logging handlers for default defaultLogger.
|
|
func SetHandlers(handlers ...Handler) {
|
|
defaultLogger.SetHandlers(handlers...)
|
|
}
|
|
|
|
// SetWriterColorEnable sets the file logging with color
|
|
func SetWriterColorEnable(enabled bool) {
|
|
defaultLogger.SetWriterColorEnable(enabled)
|
|
}
|