| ; Licensed to the Apache Software Foundation (ASF) under one |
| ; or more contributor license agreements. See the NOTICE file |
| ; distributed with this work for additional information |
| ; regarding copyright ownership. The ASF licenses this file |
| ; to you under the Apache License, Version 2.0 (the |
| ; "License"); you may not use this file except in compliance |
| ; with the License. You may obtain a copy of the License at |
| ; |
| ; http://www.apache.org/licenses/LICENSE-2.0 |
| ; |
| ; Unless required by applicable law or agreed to in writing, |
| ; software distributed under the License is distributed on an |
| ; "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ; KIND, either express or implied. See the License for the |
| ; specific language governing permissions and limitations |
| ; under the License. |
| |
| |
| ; |
| ; Allura configuration |
| ; |
| ; Default config values are shown in this file. |
| ; Commented-out configurations are examples that you can use if you want. |
| ; |
| ; Logging configuration is at the end of the file (starting at [loggers]) |
| ; |
| ; There are many settings you should change for your site (name, domain, secret keys, etc) |
| ; More settings should be changed for good performance in a production site (no autoreload, no debugging, etc) |
| ; |
| ; You may copy this file to make a new configuration file (e.g. production.ini) |
| ; Or inherit from this file by starting your .ini file like this: |
| ; [app:main] |
| ; use = config:development.ini#main |
| ; Then just use the new file name instead of development.ini for any paster commands you run. |
| |
| |
| [DEFAULT] |
| ; this section is for a few settings that are shared with error handling middleware |
| |
| ; WARNING: *THE LINE BELOW MUST BE CHANGED ON A PRODUCTION ENVIRONMENT* |
| ; Debug mode will enable the interactive debugging tool, allowing ANYONE to |
| ; execute malicious code after an exception is raised. |
| debug = true |
| ; If you want to receive an email for every unhandled HTTP 500 error, set your email address here: |
| ;email_to = you@yourdomain.com |
| error_email_from = paste@localhost |
| |
| ; SMTP settings for outgoing mail |
| smtp_tls = false |
| smtp_ssl = false |
| ;smtp_user = some_user |
| ;smtp_password = some_password |
| smtp_timeout = 10 |
| smtp_server = localhost |
| smtp_port = 8826 |
| ; Reply-To and From address often used in email notifications: |
| forgemail.return_path = noreply@localhost |
| |
| |
| ; |
| ; Settings for `paster serve` command |
| ; |
| [server:main] |
| use = egg:Paste#http |
| host = 0.0.0.0 |
| port = 8080 |
| |
| |
| ; |
| ; The main allura settings |
| ; |
| [app:main] |
| use = egg:Allura |
| full_stack = true |
| |
| ; Change this to your website's name |
| site_name = Allura |
| ; Change these to your website's domain |
| domain = localhost |
| ; Change this to your website's full URL |
| base_url = http://localhost:8080 |
| ; This should be the same as base_url |
| forgemail.url = http://localhost:8080 |
| |
| ; Change this to configure your image path and redirect link |
| ; for the logo |
| ; NOTE: specify your static.url_base before config this |
| ; Save your picture in images folder |
| ; Example: ../<static_path>/images/<logo_path> |
| ; In default configuration you can place images under |
| ; `Allura/allura/public/nf/images/` and specify file name below |
| ; logo.link = / |
| ; logo.path = sf10a.png |
| ; logo.width = 125 ; in px |
| ; logo.height = 18 ; in px |
| |
| ; Used to uniquify references to static resources, can be a timestamp or any unique value |
| ; This should be updated each time you deploy (or make significant changes, like new tools, new css) |
| build_key=1276635823 |
| |
| ; Used by Turbogears / Pylons in some cases. Not particularly relevant for Allura. |
| cache_dir = %(here)s/data |
| |
| ; Cache Neighborhood objects for N seconds (speeds up requests). |
| ; Set to 0 to disable (the default). |
| ;neighborhood.cache.duration = 0 |
| |
| ; Template cache settings |
| ; See http://jinja.pocoo.org/docs/api/#jinja2.Environment |
| jinja_cache_size = -1 |
| ;jinja_bytecode_cache_type = filesystem |
| ;jinja_bytecode_cache_type = memcached |
| ;memcached_host = |
| |
| ; Docs at http://beaker.readthedocs.org/en/latest/configuration.html#session-options |
| ; and http://beaker.readthedocs.org/en/latest/modules/session.html#beaker.session.CookieSession |
| beaker.session.key = allura |
| beaker.session.type = cookie |
| beaker.session.httponly = true |
| ; set this to true if you use HTTPS. If you use force_ssl.logged_in, this will be set automatically when logged in and not when not. |
| beaker.session.secure = false |
| ; CHANGE THIS VALUE FOR YOUR SITE |
| beaker.session.validate_key = 714bfe3612c42390726f |
| |
| ; |
| ; Settings for global navigation |
| ; |
| ; Override this to specify your custom navigation links |
| global_nav = [{"title": "Site Home", "url": "/"}] |
| |
| ; Google Analytics account for tracking |
| ;ga.account = UA-XXXXX-X |
| |
| ; Project registration system. Only local is available, unless you write a custom one for custom integration. |
| registration.method = local |
| theme = allura |
| |
| ; For LDAP see https://forge-allura.apache.org/docs/getting_started/installation.html#using-ldap |
| ;auth.method = ldap |
| auth.method = local |
| auth.remember_for = 365 ; in days, for the "remember me" checkbox on login |
| |
| ; Customize login/logout URLs only if you have some custom authentication set up. |
| auth.login_url = /auth/ |
| auth.logout_url = /auth/logout |
| ; the login fragement URL shows just the form, not a whole page. It is used within a login overlay on some pages |
| auth.login_fragment_url = /auth/login_fragment/ |
| auth.post_logout_url = / |
| |
| auth.min_password_len = 6 |
| auth.max_password_len = 30 |
| |
| ; password expiration options (disabled if neither is set) |
| ;auth.pwdexpire.days = 1 |
| ;auth.pwdexpire.before = 1401949912 ; unix timestamp |
| |
| ; if using LDAP, also run `pip install python-ldap` in your Allura environment |
| |
| auth.ldap.server = ldaps://localhost/ |
| auth.ldap.suffix = ou=people,dc=localdomain |
| auth.ldap.admin_dn = cn=admin,dc=localdomain |
| auth.ldap.admin_password = secret |
| auth.ldap.schroot_name = scm |
| auth.ldap.use_schroot = false |
| auth.ldap.password.algorithm = 6 |
| auth.ldap.password.rounds = 6000 |
| auth.ldap.password.salt_len = 16 |
| ; "autoregister" allows users to log in to Allura with an existing LDAP account |
| ; If using ldap, with autoregister, you should also set "allow_user_registration" |
| ; to false below. |
| ; Set "autoregister" to false to require user to register in Allura to create |
| ; the LDAP record and Allura record for the user. |
| auth.ldap.autoregister = true |
| |
| auth.allow_user_registration = true |
| auth.allow_user_to_disable_account = true |
| auth.allow_edit_prefs = true |
| auth.allow_password_change = true |
| auth.allow_upload_ssh_key = false |
| auth.allow_user_messages_config = true |
| auth.allow_birth_date = true |
| auth.allow_non_primary_email_password_reset = true |
| auth.require_email_addr = true |
| ; List of social network options to use on user account settings |
| socialnetworks = Facebook, Linkedin, Twitter, Google+ |
| |
| ; In seconds |
| auth.recovery_hash_expiry_period = 600 |
| |
| user_prefs_storage.method = local |
| ; user_prefs_storage.method = ldap |
| ; If using ldap, you can specify which fields to use for a preference. |
| ; Any fields not specified here will be stored locally in mongo |
| user_prefs_storage.ldap.fields.display_name = cn |
| |
| ; Limit the number of emails a user can claim. |
| user_prefs.maximum_claimed_emails = 20 |
| |
| ; Control the order of sections on the user profile page |
| ;user_profile_sections.order = activity, personal-data, skills |
| |
| ; Site admins will be the same as the admins of this project: |
| site_admin_project = allura |
| site_admin_project_nbhd = Projects |
| |
| ; Spam filtering service: mollom or akismet |
| ;spam.method = akismet |
| ; for akismet: |
| ;spam.key = |
| ; for mollom: |
| ;spam.public_key = |
| ;spam.private_key = |
| |
| ; Phone verification service: Nexmo Verify |
| ; phone.method = nexmo |
| ; phone.api_key = |
| ; phone.api_secret = |
| ; Language to use, if provider supports it. Values for Nexmo Verify: https://docs.nexmo.com/index.php/verify#localization |
| ; phone.lang = en-us |
| |
| ; Use phone verification on project registration (false by default) |
| ; project.verify_phone = true |
| |
| ; Webhook timeout in seconds |
| webhook.timeout = 30 |
| ; List of pauses between retries, if hook fails (in seconds) |
| webhook.retry = 60 120 240 |
| ; Limit rate of webhook firing (in seconds, default = 30) |
| ; Option format: webhook.<hook type>.limit, |
| ; all '-' in hook type must be changed to '_' |
| ; e.g. for repo-push webhook: |
| webhook.repo_push.limit = 30 |
| ; Limit max number of hooks that can be created for given project/app |
| ; Option name format: same as above. |
| ; Value format: json dict, where keys are app names (as appears in |
| ; `WebhookSender.triggered_by`) and values are actual limits (default=3), e.g.: |
| webhook.repo_push.max_hooks = {"git": 3, "hg": 3, "svn": 3} |
| |
| ;; Allow Cross-Origin Resource Sharing (CORS) requests to the REST API |
| ; disabled by default, uncomment the following options to enable: |
| ;cors.enabled = true |
| ;cors.methods = GET HEAD POST PUT DELETE |
| ;cors.headers = Authorization Accept Content-Type |
| ; Allow clients to cache preflight responses for N seconds |
| ; Set to 0 or remove completely to disable |
| ;cors.cache_duration = 86400 |
| |
| ; Additional fields for admin project/user search |
| ; Note: whitespace after comma is important! |
| ;search.project.additional_search_fields = private, url, title |
| ;search.user.additional_search_fields = email_addresses |
| |
| ; Additional fields to show in the result of admin project/user search |
| ; Note: whitespace after comma is important! |
| ;search.project.additional_display_fields = private, url, title |
| ;search.user.additional_display_fields = email_addresses |
| |
| ; To make all pages use ssl: (also set beaker.session.secure above) |
| ;force_ssl.pattern = . |
| ; To use ssl if and only if a user is logged in: |
| ;force_ssl.logged_in = true |
| ; If you set force_ssl.logged_in, you probably want some URLs to be ssl when logged out: |
| ;force_ssl.pattern = ^/auth|^/[a-z0-9-]+/import_project/ ; import_project uses a login overlay |
| ; And to permit some URLs to be accessed over http anyway: |
| ; /_test_vars is used when running `paster shell` |
| ;no_redirect.pattern = ^/nf/\d+/_(ew|static)_/|^/rest/|^/nf/tool_icon_css|^/auth/refresh_repo|^/_test_vars |
| |
| |
| ; Set the locations of some static resources. ("ew" stands for EasyWidgets library) |
| ; script_name is the path that is handled by the application |
| ; url_base is the prefix that references to the static resources should have |
| ; If you use a CDN, put your CDN prefix in the url_base values |
| ew.script_name = /nf/%(build_key)s/_ew_/ |
| ew.url_base = /nf/%(build_key)s/_ew_/ |
| static.script_name = /nf/%(build_key)s/_static_/ |
| static.url_base = /nf/%(build_key)s/_static_/ |
| |
| ; Expires header for "static" resources served through allura (e.g. icons, attachments, /nf/tool_icon_css) |
| files_expires_header_secs = 1209600 ; 2 weeks |
| |
| ; EasyWidgets settings |
| ; This CORS header is necessary if serving webfonts via a different domain |
| ew.extra_headers = [ ('Access-Control-Allow-Origin', '*') ] |
| ; In production, comment this out and it will default to 1 year. Update build_key whenever you deploy new code, instead. |
| ew.cache_header_seconds = 0 |
| |
| ; If your environment (e.g. behind a server-side proxy) needs to look at an http header to get the actual remote addr |
| ;ip_address_header = X-Forwarded-For |
| |
| ; SCM settings for local development |
| scm.host.ro.git = /srv/git$path |
| scm.host.rw.git = /srv/git$path |
| ; remote access varies by configuration. If you are using a vagrant VM, this should work: |
| ;scm.host.rw.git = ssh://vagrant@localhost:2222/srv/git$path |
| scm.host.ro.hg = /srv/hg$path |
| scm.host.rw.hg = /srv/hg$path |
| scm.host.ro.svn = file:///srv/svn$path/ |
| scm.host.rw.svn = file:///srv/svn$path/ |
| |
| ; SCM settings for chroot + ldap configuration. See Allura/docs/getting_started/scm_host.rst |
| ;scm.host.ro.git = git://git.localhost$path |
| ;scm.host.rw.git = ssh://$username@localhost:8022/scm-repo$path |
| ;scm.host.ro.hg = http://hg.localhost$path |
| ;scm.host.rw.hg = ssh://$username@localhost:8022/scm-repo$path |
| ;scm.host.ro.svn = http://svn.localhost$path/ |
| ;scm.host.rw.svn = svn+ssh://localhost:8022/scm-repo$path/ |
| |
| ; SCM settings for https (sorry no docs for setting these up) |
| ; these settings are currently required by the template, no matter what |
| scm.host.https.git = https://$username@localhost:8022/scm-repo$path |
| scm.host.https_anon.git = https://localhost:8022/scm-repo$path |
| scm.host.https.hg = https://$username@localhost:8022/scm-repo$path |
| scm.host.https_anon.hg = https://localhost:8022/scm-repo$path |
| scm.host.https.svn = https://localhost:8022/scm-repo$path/ |
| scm.host.https_anon.svn = https://localhost:8022/scm-repo$path/ |
| |
| scm.clone.git = git clone $source_url $dest_path |
| scm.clone.hg = hg clone $source_url $dest_path |
| scm.clone.ro.svn = svn checkout $source_url $dest_path |
| scm.clone.https_anon.svn = svn checkout $source_url $dest_path |
| scm.clone.svn = svn checkout --username=$username $source_url $dest_path |
| |
| scm.repos.root = /srv |
| scm.repos.tarball.enable = false |
| scm.repos.tarball.root = /usr/share/nginx/www/ |
| scm.repos.tarball.url_prefix = http://localhost/ |
| scm.repos.tarball.zip_binary = /usr/bin/zip |
| |
| ; SCM imports (currently just SVN) will retry if it fails |
| ; You can control the number of tries and delay between tries here: |
| scm.import.retry_count = 50 |
| scm.import.retry_sleep_secs = 5 |
| |
| ; When getting a list of valid references (branches/tags) from a repo, you can cache |
| ; the results in mongo based on a threshold. Set `repo_refs_cache_threshold` (in seconds) and the resulting |
| ; lists will be cached and served from cache on subsequent requests until reset by `repo_refresh`. |
| ; Set to 0 to cache all references. Remove entirely to cache nothing. |
| repo_refs_cache_threshold = .01 |
| |
| ; Enabling copy detection will display copies and renames in the commit views |
| ; at the expense of much longer response times. SVN tracks copies by default. |
| scm.commit.git.detect_copies = true |
| scm.commit.hg.detect_copies = false |
| |
| ; One-click merge is enabled by default, but can be turned off on for each type of repo |
| scm.merge.git.disabled = false |
| scm.merge.hg.disabled = false |
| |
| ; Merge request viewing will fetch git info into existing git repositories. On |
| ; deployments where writes in existing git repos are unwanted, clone to tmp dir |
| ; can be used. |
| ;scm.merge_list.git.use_tmp_dir = true |
| |
| ; bulk_export_enabled = true |
| ; If you keep bulk_export_enabled, you should set up your server to securely share bulk_export_path with users somehow |
| bulk_export_path = /tmp/bulk_export/{nbhd}/{project} |
| bulk_export_filename = {project}-backup-{date:%Y-%m-%d-%H%M%S}.zip |
| ; You will need to specify site-specific instructions here for accessing the exported files. |
| bulk_export_download_instructions = Sample instructions for {project} |
| |
| importer_upload_path = /tmp/importer_upload/{nbhd}/{project} |
| |
| ; To disable any plugin, tool, importer, etc from being available, you can use the disable_entry_points config option. |
| ; Specify the keys and values as they are declared in the tool's "setup.py" file. |
| ; Examples: |
| ;disable_entry_points.allura.importers = github-tracker, github-wiki, github-repo |
| ;disable_entry_points.allura.project_importers = github |
| |
| ; Importers specifically, can be left enabled but not linked to. You have to know the URL to use it. Example: |
| ;hidden_importers = trac-tickets |
| |
| ; GitHub importer keys. For github ticket import, it is best to set |
| ; up an app at https://github.com/settings/applications Use the root URL |
| ; of your Allura instance for both URLs, and enter client values here: |
| ;github_importer.client_id = |
| ;github_importer.client_secret = |
| |
| ; If your site has docs about specific importers, you can add them here and |
| ; they'll appear on the import forms |
| ;doc.url.importers.GitHub = http://... |
| |
| ; List of oauth API keys permitted to use special forum import API |
| ; (should be converted to newer importer system) |
| ;oauth.can_import_forum = api-key-1234, fa832r0fdsafd, f23f80sdf32fd |
| |
| |
| ; space-separated list of tool names that are valid options |
| ; for project admins to set for their 'support_page' field |
| ; this field is not used by default in Allura, so this option |
| ; is disabled by default |
| ;support_tool_choices = wiki tickets discussion |
| |
| ; Control how /categories URL can be accessed to edit trove categories (used in project categories and user skills) |
| ; Default: everyone |
| trovecategories.enableediting = true |
| ; Nobody: |
| ;trovecategories.enableediting = false |
| ; Site admins only: |
| ;trovecategories.enableediting = admin |
| |
| ; ActivityStream |
| activitystream.master = mongodb://127.0.0.1:27017 |
| activitystream.database = activitystream |
| activitystream.activity_collection = activities |
| activitystream.node_collection = nodes |
| activitystream.timeline_collection = timelines |
| activitystream.enabled = true |
| activitystream.recording.enabled = true |
| activitystream.ming.auto_ensure_indexes = false |
| |
| ; Ming setup |
| ; These don't necessarily have to be separate databases, they could |
| ; be all in the same database if desired |
| ming.main.uri = mongodb://127.0.0.1:27017/allura |
| ming.main.auto_ensure_indexes = False |
| ming.project.uri = mongodb://127.0.0.1:27017/project-data |
| ming.project.auto_ensure_indexes = False |
| ming.task.uri = mongodb://127.0.0.1:27017/task |
| ming.task.auto_ensure_indexes = False |
| |
| ; A float from 0-1 representing a % of requests to measure timing on. |
| ; Sampled requests will have timing logged to stats.log (can change file in [handler_timermiddleware] logging section) |
| stats.sample_rate = 1 |
| |
| ; Taskd setup |
| ; number of seconds to sleep between checking for new tasks |
| monq.poll_interval=2 |
| |
| ; SOLR setup |
| solr.server = http://localhost:8983/solr/allura |
| ; Alternate server to use just for querying |
| ;solr.query_server = |
| ; Shorter timeout for search queries (longer timeout for saving to solr) |
| solr.short_timeout = 10 |
| ; commit on every add/delete? |
| solr.commit = false |
| ; commit add operations within N ms |
| solr.commitWithin = 10000 |
| ; Use improved data types for labels and custom fields? |
| ; New Allura deployments should leave this set to true. Existing deployments |
| ; should set to false until existing data has been reindexed. Reindexing will |
| ; convert existing label and custom field data to more appropriate solr types. |
| solr.use_new_types = true |
| |
| ; Incoming email settings. Used when you run: paster smtp_server development.ini |
| ; address to listen to |
| forgemail.host = 0.0.0.0 |
| forgemail.port = 8825 |
| ; domain suffix for your mail, change this. You also need to route *.*.*.forgemail.domain to the above host/port via |
| ; your mail and DNS configuration |
| forgemail.domain = .in.localhost |
| |
| ; Specify the number of projects allowed to be created by a user depending on the age of their user account. |
| ; Keys are number of seconds, values are max number allowed until that time period is reached. |
| ; NOTE: this includes the default user-profile project, so you probably want to set any limits higher by 1. |
| ; This example allows for up to 2 total projects if the account is less than an hour old |
| ; and 6 total projects if the account is less than a day old. No limits after that. |
| ;project.rate_limits = {"3600": 2, "86400": 6} |
| |
| ; Specify the number of artifacts allowed to be created in a project, depending on the age of the project |
| ; Currently supports only tickets and wiki page creation rate limiting. |
| ; Keys are number of seconds, values are max number allowed until that time period is reached |
| ;forgewiki.rate_limits = {"3600": 100, "172800": 10000} |
| ;forgetracker.rate_limits = {"3600": 100, "172800": 10000} |
| ;forgeblog.rate_limits = {"3600": 100, "172800": 10000} |
| |
| ; Number of different wiki pages, tickets, etc that a user can create or edit, per time period, across all projects |
| ; Keys are number of seconds, values are max number allowed until that time period is reached |
| ; NOTE: wiki pages include the default "Home" page created for the user-project and any other projects created by the user |
| ;forgewiki.rate_limits_per_user = {"60": 3, "120": 3, "900": 5, "1800": 7, "3600": 10, "7200": 15, "86400": 20, "604800": 50, "2592000": 200} |
| ;forgetracker.rate_limits_per_user = {"60": 1, "120": 3, "900": 5, "1800": 7, "3600": 10, "7200": 15, "86400": 20, "604800": 50, "2592000": 200} |
| ;forgeblog.rate_limits_per_user = {"60": 1, "120": 3, "900": 5, "1800": 7, "3600": 10, "7200": 15, "86400": 20, "604800": 50, "2592000": 200} |
| |
| ; set this to "false" if you are deploying to production and want performance improvements |
| auto_reload_templates = true |
| |
| ; How frequently users can send messages, in seconds |
| user_message.time_interval = 3600 |
| ; Max number of messages that can be sent within that time interval. |
| user_message.max_messages = 20 |
| |
| ; Default number of times to show a sitewide notification |
| ; See https://forge-allura.apache.org/docs/getting_started/administration.html#site-notifications |
| site_notification.impressions = 0 |
| |
| ; When rendering discussion post Markdown to html, if the render takes longer |
| ; than `markdown_cache_threshold` (in seconds), the resulting html will be |
| ; cached and served from cache on subsequent requests. Set to 0 to cache all |
| ; posts. Remove entirely to cache nothing. |
| markdown_cache_threshold = .1 |
| ; markdown text longer than max length will not be converted to html |
| markdown_render_max_length = 100000 |
| ; Don't add rel=nofollow to these domains when generating links from Markdown content |
| ;nofollow_exempt_domains = |
| |
| ; Export control choices on the project admin overview page. |
| show_export_control = false |
| |
| ; By default project admins can soft-delete their projects. |
| ; A soft-deleted project will still be in the database and visible to admins, but not to others. |
| allow_project_delete = true |
| allow_project_undelete = true |
| |
| ; Advanced settings for controlling "Last Commit Doc" algorithm used when visiting any repo browse page |
| lcd_thread_chunk_size = 10 |
| lcd_timeout = 60 |
| |
| ; Many URLs support a param like limit=50 This setting controls the max value allowed for that parameter. |
| ; Allowing exceedingly high values may have a performance impact |
| limit_param_max = 500 |
| |
| |
| |
| ; |
| ; Settings for the Blog tool |
| ; |
| ; Enable or disable external RSS feed importing in ForgeBlog tool. |
| ; Default is "false". This feature requires GPL library "html2text". Install it with following command: |
| ; pip install -e git://github.com/brondsem/html2text.git#egg=html2text |
| ; You will also need to run `paster pull-rss-feeds development.ini` in a cron job to fetch them. |
| forgeblog.exfeed = false |
| |
| ; |
| ; Settings for the Chat tool |
| ; |
| forgechat.host = irc.freenode.net |
| forgechat.port = 6667 |
| ircbot.nick = allurabot |
| |
| ; |
| ; Settings for ShortUrl tool |
| ; |
| ; Override this if you set up an additional shortening mechanism (e.g. custom short domain) |
| short_url.url_pattern = {base_url}/{nbhd}/{project}/{mount_point}/{short_name} |
| |
| |
| ; |
| ; Settings for UserStats tool |
| ; |
| userstats.count_lines_of_code = true |
| |
| |
| ; |
| ; Optional settings for profiling with https://pypi.python.org/pypi/keas.profile |
| ; |
| [filter-app:profile] |
| use=egg:keas.profile#profiler |
| next=main |
| |
| |
| ; |
| ; setup for the taskd background daemon request controller |
| ; |
| [app:task] |
| use = main |
| override_root = task ; TurboGears will use controllers/task.py as root controller |
| |
| |
| |
| ; |
| ; Logging configuration |
| ; |
| ; Add additional loggers, handlers, formatters here |
| ; Uses python's logging config file format |
| ; https://docs.python.org/2/library/logging.config.html#configuration-file-format |
| ; |
| [loggers] |
| keys = root, allura, sqlalchemy, paste, pylons, ew, taskdstatus, timermiddleware, tmw_details |
| |
| [handlers] |
| keys = console, stats, taskdstatus, timermiddleware |
| |
| [formatters] |
| keys = generic, stats, timermiddleware |
| |
| ; If you create additional loggers, add them as a key to [loggers] |
| [logger_root] |
| level = INFO |
| handlers = console, stats |
| |
| [logger_allura] |
| level = INFO |
| handlers = |
| qualname = allura |
| |
| [logger_sqlalchemy] |
| level = INFO |
| handlers = |
| qualname = sqlalchemy.engine |
| ; "level = INFO" logs SQL queries. |
| ; "level = DEBUG" logs SQL queries and results. |
| ; "level = WARN" logs neither. (Recommended for production systems.) |
| |
| [logger_paste] |
| level = INFO |
| qualname = paste |
| handlers = |
| |
| [logger_pylons] |
| level = INFO |
| qualname = pylons |
| handlers = |
| |
| [logger_ew] |
| ; easy widgets |
| level = WARN |
| qualname = ew |
| handlers = |
| |
| [logger_tmw_details] |
| ; DEBUG will include every instrumented call in our logging |
| level = INFO |
| qualname = timermiddleware |
| handlers = |
| |
| [logger_taskdstatus] |
| level = INFO |
| qualname = taskdstatus |
| handlers = taskdstatus |
| |
| [logger_timermiddleware] |
| level = INFO |
| handlers = timermiddleware |
| qualname = stats |
| propagate = 0 |
| |
| ; If you create additional handlers, add them as a key to [handlers] |
| [handler_console] |
| class = StreamHandler |
| args = (sys.stderr,) |
| level = NOTSET |
| formatter = generic |
| |
| [handler_stats] |
| class = allura.lib.utils.StatsHandler |
| args = ('rtstats.log', 'allura', 1) |
| level = NOTSET |
| formatter = stats |
| |
| [handler_taskdstatus] |
| class = handlers.WatchedFileHandler |
| args = ('taskd_status.log', 'a') |
| level = NOTSET |
| formatter = generic |
| |
| [handler_timermiddleware] |
| class = handlers.WatchedFileHandler |
| ; if you run 'gunicorn' in allura/Allura/ then that's where this file will be |
| ; you may want to hard-code a specific directory here. |
| args = ('stats.log', 'a') |
| level = NOTSET |
| formatter = timermiddleware |
| |
| ; If you create additional formatters, add them as a key to [formatters] |
| [formatter_generic] |
| format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s |
| datefmt = %H:%M:%S |
| |
| [formatter_stats] |
| format = %(asctime)s %(created)d %(kwpairs)s |
| datefmt = %d/%b/%Y:%H:%M:%S UTC |
| |
| [formatter_timermiddleware] |
| format = {"time": "%(asctime)s,%(msecs)03d", "level": "%(levelname)-5.5s", "name": "%(name)s", "message": %(message)s} |
| datefmt = %Y-%m-%d %H:%M:%S |