Initial project import
This commit is contained in:
commit
23f2d29e32
11957 files changed
+1754577
No files matched your search
@@ -0,0 +1,74 @@
|
||||
## Description
|
||||
|
||||
`log` provides your application logging services.
|
||||
You can log to file or to the console and use different
|
||||
logging levels, so that you are not overwhelmed by the logs.
|
||||
|
||||
## Basic usage
|
||||
|
||||
The log module creates a default Log instance by default, and
|
||||
provides utility functions, that you can use to access it.
|
||||
Note: the default Log instance is thread safe.
|
||||
|
||||
That makes it very convenient to use in subsystems, without having
|
||||
to thread a log instance everywhere:
|
||||
|
||||
```v
|
||||
import log
|
||||
|
||||
fn abc() {
|
||||
log.info('some information')
|
||||
log.warn('a warning')
|
||||
}
|
||||
|
||||
// this will not be visible, the default log level is .info:
|
||||
log.debug('a debug message')
|
||||
|
||||
log.set_level(.debug)
|
||||
|
||||
// this will be now visible, the log level was changed to .debug:
|
||||
log.debug('a debug message')
|
||||
|
||||
abc()
|
||||
```
|
||||
|
||||
## Advanced usage
|
||||
|
||||
You can also create your own log instances, with different options
|
||||
applied to them:
|
||||
|
||||
```v
|
||||
import log
|
||||
|
||||
fn main() {
|
||||
mut l := log.Log{}
|
||||
l.set_level(.info)
|
||||
l.set_full_logpath('./info.log')
|
||||
l.log_to_console_too()
|
||||
|
||||
l.info('info')
|
||||
l.warn('warn')
|
||||
l.error('error')
|
||||
l.fatal('fatal') // panic, marked as [noreturn]
|
||||
}
|
||||
```
|
||||
|
||||
## Backwards compatibility
|
||||
|
||||
After 2025/01/21, the `log` module outputs to `stderr` by default.
|
||||
Before that, it used `stdout` by default.
|
||||
|
||||
If you want to restore the previous behaviour, you have to explicitly call `log.use_stdout()` :
|
||||
```v
|
||||
import os
|
||||
import log
|
||||
|
||||
fn main() {
|
||||
// log.info('this will be printed to stderr after 2025/01/21 by default')
|
||||
log.use_stdout()
|
||||
log.info('this will be printed to stdout')
|
||||
}
|
||||
```
|
||||
|
||||
If you want to just silence the note about the stdout -> stderr, during the transition period,
|
||||
call `l.set_output_stream(os.stderr())` explicitly.
|
||||
Reference in new issue
Block a user