diff --git a/configs/development.ini b/configs/development.ini --- a/configs/development.ini +++ b/configs/development.ini @@ -143,8 +143,16 @@ prefix = / [app:main] ; The %(here)s variable will be replaced with the absolute path of parent directory ; of this file -; In addition ENVIRONMENT variables usage is possible, e.g -; sqlalchemy.db1.url = {ENV_RC_DB_URL} +; Each option in the app:main can be override by an environmental variable +; +;To override an option: +; +;RC_ +;Everything should be uppercase, . and - should be replaced by _. +;For example, if you have these configuration settings: +;rc_cache.repo_object.backend = foo +;can be overridden by +;export RC_CACHE_REPO_OBJECT_BACKEND=foo use = egg:rhodecode-enterprise-ce @@ -379,6 +387,9 @@ file_store.storage_path = %(here)s/data/ use_celery = false +; path to store schedule database +#celerybeat-schedule.path = + ; connection url to the message broker (default redis) celery.broker_url = redis://localhost:6379/8 @@ -624,6 +635,9 @@ vcs.connection_timeout = 3600 ; Legacy available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible #vcs.svn.compatible_version = 1.8 +; Cache flag to cache vcsserver remote calls locally +; It uses cache_region `cache_repo` +vcs.methods.cache = true ; #################################################### ; Subversion proxy support (mod_dav_svn) @@ -706,55 +720,55 @@ ssh.enable_ui_key_generator = true ; http://appenlight.rhodecode.com for details how to obtain an account ; Appenlight integration enabled -appenlight = false +#appenlight = false -appenlight.server_url = https://api.appenlight.com -appenlight.api_key = YOUR_API_KEY +#appenlight.server_url = https://api.appenlight.com +#appenlight.api_key = YOUR_API_KEY #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5 ; used for JS client -appenlight.api_public_key = YOUR_API_PUBLIC_KEY +#appenlight.api_public_key = YOUR_API_PUBLIC_KEY ; TWEAK AMOUNT OF INFO SENT HERE ; enables 404 error logging (default False) -appenlight.report_404 = false +#appenlight.report_404 = false ; time in seconds after request is considered being slow (default 1) -appenlight.slow_request_time = 1 +#appenlight.slow_request_time = 1 ; record slow requests in application ; (needs to be enabled for slow datastore recording and time tracking) -appenlight.slow_requests = true +#appenlight.slow_requests = true ; enable hooking to application loggers -appenlight.logging = true +#appenlight.logging = true ; minimum log level for log capture -appenlight.logging.level = WARNING +#ppenlight.logging.level = WARNING ; send logs only from erroneous/slow requests ; (saves API quota for intensive logging) -appenlight.logging_on_error = false +#appenlight.logging_on_error = false ; list of additional keywords that should be grabbed from environ object ; can be string with comma separated list of words in lowercase ; (by default client will always send following info: ; 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that ; start with HTTP* this list be extended with additional keywords here -appenlight.environ_keys_whitelist = +#appenlight.environ_keys_whitelist = ; list of keywords that should be blanked from request object ; can be string with comma separated list of words in lowercase ; (by default client will always blank keys that contain following words ; 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf' ; this list be extended with additional keywords set here -appenlight.request_keys_blacklist = +#appenlight.request_keys_blacklist = ; list of namespaces that should be ignores when gathering log entries ; can be string with comma separated list of namespaces ; (by default the client ignores own entries: appenlight_client.client) -appenlight.log_namespace_blacklist = +#appenlight.log_namespace_blacklist = ; Statsd client config, this is used to send metrics to statsd ; We recommend setting statsd_exported and scrape them using Promethues @@ -764,6 +778,16 @@ appenlight.log_namespace_blacklist = #statsd.statsd_prefix = #statsd.statsd_ipv6 = false +; configure logging automatically at server startup set to false +; to use the below custom logging config. +; RC_LOGGING_FORMATTER +; RC_LOGGING_LEVEL +; env variables can control the settings for logging in case of autoconfigure + +#logging.autoconfigure = true + +; specify your own custom logging config file to configure logging +#logging.logging_conf_file = /path/to/custom_logging.ini ; Dummy marker to add new entries after. ; Add any custom entries below. Please don't remove this marker. @@ -773,6 +797,7 @@ custom.conf = 1 ; ##################### ; LOGGING CONFIGURATION ; ##################### + [loggers] keys = root, sqlalchemy, beaker, celery, rhodecode, ssh_wrapper @@ -780,7 +805,7 @@ keys = root, sqlalchemy, beaker, celery, keys = console, console_sql [formatters] -keys = generic, color_formatter, color_formatter_sql +keys = generic, json, color_formatter, color_formatter_sql ; ####### ; LOGGERS @@ -861,5 +886,5 @@ format = %(asctime)s.%(msecs)03d [%(proc datefmt = %Y-%m-%d %H:%M:%S [formatter_json] -format = %(message)s -class = rhodecode.lib._vendor.jsonlogger.JsonFormatter \ No newline at end of file +format = %(timestamp)s %(levelname)s %(name)s %(message)s %(req_id)s +class = rhodecode.lib._vendor.jsonlogger.JsonFormatter diff --git a/configs/gunicorn_config.py b/configs/gunicorn_config.py --- a/configs/gunicorn_config.py +++ b/configs/gunicorn_config.py @@ -29,6 +29,8 @@ accesslog = '-' worker_tmp_dir = None tmp_upload_dir = None +#reuse_port = True + # Custom log format #access_log_format = ( # '%(t)s %(p)s INFO [GNCRN] %(h)-15s rqt:%(L)s %(s)s %(b)-6s "%(m)s:%(U)s %(q)s" usr:%(u)s "%(f)s" "%(a)s"') diff --git a/configs/production.ini b/configs/production.ini --- a/configs/production.ini +++ b/configs/production.ini @@ -36,7 +36,7 @@ port = 5000 ; GUNICORN APPLICATION SERVER ; ########################### -; run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini +; run with gunicorn --paste rhodecode.ini ; Module to use, this setting shouldn't be changed use = egg:gunicorn#main @@ -124,6 +124,18 @@ use = egg:PasteDeploy#prefix prefix = / [app:main] +; The %(here)s variable will be replaced with the absolute path of parent directory +; of this file +; Each option in the app:main can be override by an environmental variable +; +;To override an option: +; +;RC_ +;Everything should be uppercase, . and - should be replaced by _. +;For example, if you have these configuration settings: +;rc_cache.repo_object.backend = foo +;can be overridden by +;export RC_CACHE_REPO_OBJECT_BACKEND=foo use = egg:rhodecode-enterprise-ce @@ -717,9 +729,12 @@ ssh.enable_ui_key_generator = true #statsd.statsd_prefix = #statsd.statsd_ipv6 = false - ; configure logging automatically at server startup set to false ; to use the below custom logging config. +; RC_LOGGING_FORMATTER +; RC_LOGGING_LEVEL +; env variables can control the settings for logging in case of autoconfigure + #logging.autoconfigure = true ; specify your own custom logging config file to configure logging @@ -733,6 +748,7 @@ custom.conf = 1 ; ##################### ; LOGGING CONFIGURATION ; ##################### + [loggers] keys = root, sqlalchemy, beaker, celery, rhodecode, ssh_wrapper @@ -740,7 +756,7 @@ keys = root, sqlalchemy, beaker, celery, keys = console, console_sql [formatters] -keys = generic, color_formatter, color_formatter_sql +keys = generic, json, color_formatter, color_formatter_sql ; ####### ; LOGGERS @@ -821,5 +837,5 @@ format = %(asctime)s.%(msecs)03d [%(proc datefmt = %Y-%m-%d %H:%M:%S [formatter_json] -format = %(message)s -class = rhodecode.lib._vendor.jsonlogger.JsonFormatter \ No newline at end of file +format = %(timestamp)s %(levelname)s %(name)s %(message)s %(req_id)s +class = rhodecode.lib._vendor.jsonlogger.JsonFormatter