3.7 KiB
Logging
- Enabling logging
- Logging options
- Log long-running sql queries
- Changing default logger
- Using custom logger
Enabling logging
You can enable all queries logging by simply setting logging: true in your connection options:
{
name: "mysql",
type: "mysql",
host: "localhost",
port: 3306,
username: "test",
password: "test",
database: "test",
...
logging: true
}
This configuration will enable all executing queries logging + errors of failed queries.
Logging options
You can enable different types of logging in connection options:
{
host: "localhost",
...
logging: ["query", "error"]
}
If you want to enable only logging of failed queries then only enable error in configuration:
{
host: "localhost",
...
logging: ["error"]
}
There are few other options you can use:
query- enables all query loggingerror- enables failed query error loggingschema- enables schema build process loggingwarn- enables internal orm warning messages logginginfo- enables internal orm informative messages logginglog- enables internal orm log messages logging
You can specify as many of logging options as needed.
If you want to enable all logging you can simply specify logging: "all":
{
host: "localhost",
...
logging: "all"
}
Log long-running queries
If you have performance issues you can log queries that execute too much time
by setting maxQueryExecutionTime option in connection options:
{
host: "localhost",
...
maxQueryExecutionTime: 1000
});
This code will log all queries which run more then 1 second.
Changing default logger
There are several loggers TypeORM ships with 3 different types of loggers:
advanced-console- this is default logger which logs all messages into console using color and sql syntax highlighting (using chalk package)simple-console- this is simple console logger which is exactly the same as advanced, but it does not use any color highlighting. This logger can be used if you have problems / or don't like colorized logsfile- this logger writes all logs intoormlogs.logfile in the root folder of your project (nearpackage.jsonandormconfig.json)
You can enable any of them in connection options this way:
{
host: "localhost",
...
logger: "simple-console",
logging: true
}
Using custom logger
You can create your own logger class by implementing Logger interface and
specifying your custom logger in connection options:
import {Logger} from "typeorm";
export class MyCustomLogger implements Logger {
// implement all methods from logger class
}
And specify it in connection options:
import {createConnection} from "typeorm";
import {MyCustomLogger} from "./logger/MyCustomLogger";
createConnection({
name: "mysql",
type: "mysql",
host: "localhost",
port: 3306,
username: "test",
password: "test",
database: "test",
logger: MyCustomLogger()
});
If you defined your connection options in ormconfig file,
then you can use it and override following way:
import {createConnection, getConnectionOptions} from "typeorm";
import {MyCustomLogger} from "./logger/MyCustomLogger";
// getConnectionOptions will read options from your ormconfig file
// and return it in connectionOptions object
// then you can simply append additional properties to it
getConnectionOptions().then(connectionOptions => {
return createConnection(Object.assign(connectionOptions, {
logger: new MyCustomLogger()
}))
});