Merge pull request #2855 from x2f/devel
In logging.nim, expose bufSize parameter for file-based loggers
This commit is contained in:
commit
a88120ab50
1 changed files with 13 additions and 5 deletions
|
|
@ -82,6 +82,7 @@ type
|
||||||
baseName: string # initial filename
|
baseName: string # initial filename
|
||||||
baseMode: FileMode # initial file mode
|
baseMode: FileMode # initial file mode
|
||||||
logFiles: int # how many log files already created, e.g. basename.1, basename.2...
|
logFiles: int # how many log files already created, e.g. basename.1, basename.2...
|
||||||
|
bufSize: int # size of output buffer (-1: use system defaults, 0: unbuffered, >0: fixed buffer size)
|
||||||
|
|
||||||
{.deprecated: [TLevel: Level, PLogger: Logger, PConsoleLogger: ConsoleLogger,
|
{.deprecated: [TLevel: Level, PLogger: Logger, PConsoleLogger: ConsoleLogger,
|
||||||
PFileLogger: FileLogger, PRollingFileLogger: RollingFileLogger].}
|
PFileLogger: FileLogger, PRollingFileLogger: RollingFileLogger].}
|
||||||
|
|
@ -148,11 +149,14 @@ proc newConsoleLogger*(levelThreshold = lvlAll, fmtStr = defaultFmtStr): Console
|
||||||
proc newFileLogger*(filename = defaultFilename(),
|
proc newFileLogger*(filename = defaultFilename(),
|
||||||
mode: FileMode = fmAppend,
|
mode: FileMode = fmAppend,
|
||||||
levelThreshold = lvlAll,
|
levelThreshold = lvlAll,
|
||||||
fmtStr = defaultFmtStr): FileLogger =
|
fmtStr = defaultFmtStr,
|
||||||
|
bufSize: int = -1): FileLogger =
|
||||||
## Creates a new file logger. This logger logs to a file.
|
## Creates a new file logger. This logger logs to a file.
|
||||||
|
## Use ``bufSize`` as size of the output buffer when writing the file
|
||||||
|
## (-1: use system defaults, 0: unbuffered, >0: fixed buffer size).
|
||||||
new(result)
|
new(result)
|
||||||
result.levelThreshold = levelThreshold
|
result.levelThreshold = levelThreshold
|
||||||
result.f = open(filename, mode)
|
result.f = open(filename, mode, bufSize = bufSize)
|
||||||
result.fmtStr = fmtStr
|
result.fmtStr = fmtStr
|
||||||
|
|
||||||
# ------
|
# ------
|
||||||
|
|
@ -181,14 +185,18 @@ proc newRollingFileLogger*(filename = defaultFilename(),
|
||||||
mode: FileMode = fmReadWrite,
|
mode: FileMode = fmReadWrite,
|
||||||
levelThreshold = lvlAll,
|
levelThreshold = lvlAll,
|
||||||
fmtStr = defaultFmtStr,
|
fmtStr = defaultFmtStr,
|
||||||
maxLines = 1000): RollingFileLogger =
|
maxLines = 1000,
|
||||||
|
bufSize: int = -1): RollingFileLogger =
|
||||||
## Creates a new rolling file logger. Once a file reaches ``maxLines`` lines
|
## Creates a new rolling file logger. Once a file reaches ``maxLines`` lines
|
||||||
## a new log file will be started and the old will be renamed.
|
## a new log file will be started and the old will be renamed.
|
||||||
|
## Use ``bufSize`` as size of the output buffer when writing the file
|
||||||
|
## (-1: use system defaults, 0: unbuffered, >0: fixed buffer size).
|
||||||
new(result)
|
new(result)
|
||||||
result.levelThreshold = levelThreshold
|
result.levelThreshold = levelThreshold
|
||||||
result.fmtStr = fmtStr
|
result.fmtStr = fmtStr
|
||||||
result.maxLines = maxLines
|
result.maxLines = maxLines
|
||||||
result.f = open(filename, mode)
|
result.bufSize = bufSize
|
||||||
|
result.f = open(filename, mode, bufSize=result.bufSize)
|
||||||
result.curLine = 0
|
result.curLine = 0
|
||||||
result.baseName = filename
|
result.baseName = filename
|
||||||
result.baseMode = mode
|
result.baseMode = mode
|
||||||
|
|
@ -215,7 +223,7 @@ method log*(logger: RollingFileLogger, level: Level,
|
||||||
rotate(logger)
|
rotate(logger)
|
||||||
logger.logFiles.inc
|
logger.logFiles.inc
|
||||||
logger.curLine = 0
|
logger.curLine = 0
|
||||||
logger.f = open(logger.baseName, logger.baseMode)
|
logger.f = open(logger.baseName, logger.baseMode, bufSize = logger.bufSize)
|
||||||
|
|
||||||
writeln(logger.f, LevelNames[level], " ",substituteLog(logger.fmtStr), frmt % args)
|
writeln(logger.f, LevelNames[level], " ",substituteLog(logger.fmtStr), frmt % args)
|
||||||
logger.curLine.inc
|
logger.curLine.inc
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue