diff --git a/config_full.json.example b/config_full.json.example
index 481742817..57ebb22e6 100644
--- a/config_full.json.example
+++ b/config_full.json.example
@@ -121,6 +121,7 @@
"enabled": false,
"listen_ip_address": "127.0.0.1",
"listen_port": 8080,
+ "verbosity": "info",
"jwt_secret_key": "somethingrandom",
"username": "freqtrader",
"password": "SuperSecurePassword"
diff --git a/docs/configuration.md b/docs/configuration.md
index a1cb45e0f..3a8262fab 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -103,6 +103,7 @@ Mandatory parameters are marked as **Required**, which means that they are requi
| `api_server.enabled` | Enable usage of API Server. See the [API Server documentation](rest-api.md) for more details.
**Datatype:** Boolean
| `api_server.listen_ip_address` | Bind IP address. See the [API Server documentation](rest-api.md) for more details.
**Datatype:** IPv4
| `api_server.listen_port` | Bind Port. See the [API Server documentation](rest-api.md) for more details.
**Datatype:** Integer between 1024 and 65535
+| `api_server.verbosity` | Loggging verbosity. `info` will print all RPC Calls, while "error" will only display errors.
**Datatype:** Enum, either `info` or `error`. Defaults to `info`.
| `api_server.username` | Username for API server. See the [API Server documentation](rest-api.md) for more details.
**Keep it in secret, do not disclose publicly.**
**Datatype:** String
| `api_server.password` | Password for API server. See the [API Server documentation](rest-api.md) for more details.
**Keep it in secret, do not disclose publicly.**
**Datatype:** String
| `db_url` | Declares database URL to use. NOTE: This defaults to `sqlite:///tradesv3.dryrun.sqlite` if `dry_run` is `true`, and to `sqlite:///tradesv3.sqlite` for production instances.
**Datatype:** String, SQLAlchemy connect string
diff --git a/docs/rest-api.md b/docs/rest-api.md
index 7f1a95b12..ed5f355b4 100644
--- a/docs/rest-api.md
+++ b/docs/rest-api.md
@@ -11,6 +11,7 @@ Sample configuration:
"enabled": true,
"listen_ip_address": "127.0.0.1",
"listen_port": 8080,
+ "verbosity": "info",
"jwt_secret_key": "somethingrandom",
"username": "Freqtrader",
"password": "SuperSecret1!"
diff --git a/freqtrade/constants.py b/freqtrade/constants.py
index 1984d4866..a91e3b19f 100644
--- a/freqtrade/constants.py
+++ b/freqtrade/constants.py
@@ -221,6 +221,7 @@ CONF_SCHEMA = {
},
'username': {'type': 'string'},
'password': {'type': 'string'},
+ 'verbosity': {'type': 'string', 'enum': ['error', 'info']},
},
'required': ['enabled', 'listen_ip_address', 'listen_port', 'username', 'password']
},
diff --git a/freqtrade/loggers.py b/freqtrade/loggers.py
index 153ce8c80..aa08ee8a7 100644
--- a/freqtrade/loggers.py
+++ b/freqtrade/loggers.py
@@ -11,7 +11,7 @@ from freqtrade.exceptions import OperationalException
logger = logging.getLogger(__name__)
-def _set_loggers(verbosity: int = 0) -> None:
+def _set_loggers(verbosity: int = 0, api_verbosity: str = 'info') -> None:
"""
Set the logging level for third party libraries
:return: None
@@ -28,6 +28,10 @@ def _set_loggers(verbosity: int = 0) -> None:
)
logging.getLogger('telegram').setLevel(logging.INFO)
+ logging.getLogger('werkzeug').setLevel(
+ logging.ERROR if api_verbosity == 'error' else logging.INFO
+ )
+
def setup_logging(config: Dict[str, Any]) -> None:
"""
@@ -77,5 +81,5 @@ def setup_logging(config: Dict[str, Any]) -> None:
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=log_handlers
)
- _set_loggers(verbosity)
+ _set_loggers(verbosity, config.get('api_server', {}).get('verbosity', 'info'))
logger.info('Verbosity set to %s', verbosity)
diff --git a/freqtrade/rpc/api_server.py b/freqtrade/rpc/api_server.py
index 23b6a85b0..9d0899ccd 100644
--- a/freqtrade/rpc/api_server.py
+++ b/freqtrade/rpc/api_server.py
@@ -360,7 +360,6 @@ class ApiServer(RPC):
Returns a cumulative profit statistics
:return: stats
"""
- logger.info("LocalRPC - Profit Command Called")
stats = self._rpc_trade_statistics(self._config['stake_currency'],
self._config.get('fiat_display_currency')
@@ -377,8 +376,6 @@ class ApiServer(RPC):
Returns a cumulative performance statistics
:return: stats
"""
- logger.info("LocalRPC - performance Command Called")
-
stats = self._rpc_performance()
return self.rest_dump(stats)