Log
QuestDB log provides database information. This page presents log level, their details, and where to configure and find the log.
Log location
QuestDB open source
QuestDB creates the following file structure in its root_directory:
questdb
├── conf
├── db
├── log
├── public
└── snapshot (optional)
Log files are stored in the log
folder:
├── log
│ ├── stdout-2020-04-15T11-59-59.txt
│ └── stdout-2020-04-12T13-31-22.txt
Log levels
QuestDB log provides the following types of log information:
Type | Marker | Details | Default |
---|---|---|---|
Advisory | A | Startup information such as hosts, listening ports, etc. Rarely used after startup | Enabled |
Critical | C | Internal database errors. Serious issues. Things that should not happen in general operation. | Enabled |
Error | E | An error, usually (but not always) caused by a user action such as inserting a symbol into a timestamp column. For context on how this error happened, check for Info-level messages logged before the error. | Enabled |
Info | I | Logs for activities. Info-level messages often provide context for an error if one is logged later. | Enabled |
Debug | D | Finer details on what is happening. Useful to debug issues. | Disabled |
For more information, see the source code on GH.
Log examples
The below is some examples of log messages by type.
Advisory:
2023-02-24T14:59:45.076113Z A server-main Config:
2023-02-24T14:59:45.076130Z A server-main - http.enabled : true
2023-02-24T14:59:45.076144Z A server-main - tcp.enabled : true
2023-02-24T14:59:45.076159Z A server-main - pg.enabled : true
Critical:
2022-08-08T11:15:13.040767Z C i.q.c.p.WriterPool could not open [table=`sys.text_import_log`, thread=1, ex=could not open read-write [file=/opt/homebrew/var/questdb/db/sys.text_import_log/_todo_], errno=13]
...
2022-08-23T07:55:15.490045Z C i.q.c.h.p.JsonQueryProcessorState [77] internal error [q=`REINDEX TABLE 'weather' COLUMN timestamp LOCK EXCLUSIVE;`, ex=
...
2022-11-17T10:28:00.464140Z C i.q.c.h.p.JsonQueryProcessorState [7] Uh-oh. Error!
Error:
2023-02-24T14:59:45.059012Z I i.q.c.t.t.InputFormatConfiguration loading input format config [resource=/text_loader.json]
...
2023-03-20T08:38:17.076744Z E i.q.c.l.u.AbstractLineProtoUdpReceiver could not set receive buffer size [fd=140, size=8388608, errno=55]
...
2022-08-03T11:13:41.947760Z E server-main [errno=48] could not bind socket [who=http-server, bindTo=0.0.0.0:9000]
Info:
2020-04-15T16:42:32.879970Z I i.q.c.TableReader new transaction [txn=2, transientRowCount=1, fixedRowCount=1, maxTimestamp=1585755801000000, attempts=0]
2020-04-15T16:42:32.880051Z I i.q.g.FunctionParser call to_timestamp('2020-05-01:15:43:21','yyyy-MM-dd:HH:mm:ss') -> to_timestamp(Ss)
2020-04-15T16:42:32.880657Z I i.q.c.p.WriterPool >> [table=`table_1`, thread=12]
2020-04-15T16:42:32.881330Z I i.q.c.AppendMemory truncated and closed [fd=32]
2020-04-15T16:42:32.881448Z I i.q.c.AppendMemory open /usr/local/var/questdb/db/table_1/2020-05/timestamp.d [fd=32, pageSize=16777216]
2020-04-15T16:42:32.881708Z I i.q.c.AppendMemory truncated and closed [fd=33]
Debug:
2023-03-31T11:47:05.723715Z D i.q.g.FunctionParser call cast(investmentMill,INT) -> cast(Li)
2023-03-31T11:47:05.723729Z D i.q.g.FunctionParser call rnd_symbol(4,4,4,2) -> rnd_symbol(iiii)
2023-03-31T11:47:05.723749Z D i.q.g.FunctionParser call investmentMill * 950399 -> *(LL)
2023-03-31T11:47:05.723794Z D i.q.g.FunctionParser call cast(1672531200000000L,TIMESTAMP) -> cast(Ln)
2023-03-31T11:47:05.723803Z D i.q.g.FunctionParser call cast(1672531200000000L,TIMESTAMP) + investmentMill * 950399 -> +(NL)
Log configuration
QuestDB logging can be configured globally to DEBUG
via either providing the
java option -Debug
or setting the environment variable QDB_DEBUG=true
. See
reference manual for details on
logging configuration.