Mercurial > libervia-backend
annotate src/core/constants.py @ 1007:a7d33c7a8277
core (log): refactoring + twisted backend:
- configuration is now done with classes, so inheritance is possible
- twisted backend now use twisted log methods
- log not produced by SàT directly in twisted backend are captured by an observer (twistedObserver) and sent back to SàT logging chain, with the "twisted" logger.
- \\default output use normal twistd output, except in debug mode where it add an stdout output in addition to the log file.
- when log_colors = True, colors are enabled only where it's possible (tty out), when log_colors=force colors are always enabled.
- fixed some bad log.xxx calls
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 05 May 2014 18:58:34 +0200 |
parents | b4af31a8a4f2 |
children | 73a0b7f94674 |
rev | line source |
---|---|
914
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 #!/usr/bin/python |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # SàT: a XMPP client |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
5 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Jérôme Poisson (goffi@goffi.org) |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
967
242bd4fc654c
core, frontends (constants): frontends Const inheritates from core Const
souliane <souliane@mailoo.org>
parents:
944
diff
changeset
|
20 try: |
1001 | 21 import __pyjamas__ # do not import xdg when building Libervia |
22 BaseDirectory = None | |
967
242bd4fc654c
core, frontends (constants): frontends Const inheritates from core Const
souliane <souliane@mailoo.org>
parents:
944
diff
changeset
|
23 except ImportError: |
1004
191f440d11b4
core (constants): use realpath instead of abspath + do not import it when building libervia
souliane <souliane@mailoo.org>
parents:
1003
diff
changeset
|
24 from os.path import expanduser, realpath |
1001 | 25 from xdg import BaseDirectory |
930
cbf4122baae7
core, memory: use XDG recommended paths as the defaults for the config and local directories
souliane <souliane@mailoo.org>
parents:
926
diff
changeset
|
26 |
914
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 |
1a3ba959f0ab
core (memory): moved Params in its own module + introduced a new core/constants module, and moved some constants there
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 class Const(object): |
942
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
29 |
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
30 ## Application ## |
923 | 31 APP_NAME = u'Salut à Toi' |
32 APP_NAME_SHORT = u'SàT' | |
1003
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
1001
diff
changeset
|
33 APP_NAME_FILE = u'sat' |
923 | 34 APP_NAME_FULL = u'%s (%s)' % (APP_NAME_SHORT, APP_NAME) |
967
242bd4fc654c
core, frontends (constants): frontends Const inheritates from core Const
souliane <souliane@mailoo.org>
parents:
944
diff
changeset
|
35 APP_VERSION = u'0.4.1D' # Please add 'D' at the end for dev versions |
242bd4fc654c
core, frontends (constants): frontends Const inheritates from core Const
souliane <souliane@mailoo.org>
parents:
944
diff
changeset
|
36 APP_URL = 'http://salut-a-toi.org' |
942
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
37 |
994
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
38 |
942
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
39 ## Parameters ## |
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
40 NO_SECURITY_LIMIT = -1 |
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
41 INDIVIDUAL = "individual" |
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
42 GENERAL = "general" |
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
43 |
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
44 |
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
45 ## Profile and entities ## |
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
46 PROF_KEY_NONE = '@NONE@' |
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
47 PROF_KEY_DEFAULT = '@DEFAULT@' |
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
48 ENTITY_ALL = '@ALL@' |
944
e1842ebcb2f3
core, plugin XEP-0115: discovery refactoring:
Goffi <goffi@goffi.org>
parents:
943
diff
changeset
|
49 ENTITY_LAST_RESOURCE = 'LAST_RESOURCE' |
e1842ebcb2f3
core, plugin XEP-0115: discovery refactoring:
Goffi <goffi@goffi.org>
parents:
943
diff
changeset
|
50 ENTITY_CAP_HASH = 'CAP_HASH' |
942
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
51 |
994
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
52 |
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
53 ## Configuration ## |
967
242bd4fc654c
core, frontends (constants): frontends Const inheritates from core Const
souliane <souliane@mailoo.org>
parents:
944
diff
changeset
|
54 if BaseDirectory: # skipped when imported from Libervia browser_side |
942
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
55 |
967
242bd4fc654c
core, frontends (constants): frontends Const inheritates from core Const
souliane <souliane@mailoo.org>
parents:
944
diff
changeset
|
56 ## Configuration ## |
242bd4fc654c
core, frontends (constants): frontends Const inheritates from core Const
souliane <souliane@mailoo.org>
parents:
944
diff
changeset
|
57 DEFAULT_CONFIG = { |
1003
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
1001
diff
changeset
|
58 'media_dir': '/usr/share/' + APP_NAME_FILE + '/media', |
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
1001
diff
changeset
|
59 'local_dir': BaseDirectory.save_data_path(APP_NAME_FILE), |
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
1001
diff
changeset
|
60 'pid_dir': '%(local_dir)s', |
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
1001
diff
changeset
|
61 'log_dir': '%(local_dir)s', |
967
242bd4fc654c
core, frontends (constants): frontends Const inheritates from core Const
souliane <souliane@mailoo.org>
parents:
944
diff
changeset
|
62 } |
923 | 63 |
967
242bd4fc654c
core, frontends (constants): frontends Const inheritates from core Const
souliane <souliane@mailoo.org>
parents:
944
diff
changeset
|
64 # List of the configuration filenames sorted by ascending priority |
1004
191f440d11b4
core (constants): use realpath instead of abspath + do not import it when building libervia
souliane <souliane@mailoo.org>
parents:
1003
diff
changeset
|
65 CONFIG_FILES = [realpath(expanduser(path) + APP_NAME_FILE + '.conf') for path in |
1001 | 66 ['/etc/', '~/', '~/.', '', '.'] + |
1003
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
1001
diff
changeset
|
67 ['%s/' % path for path in list(BaseDirectory.load_config_paths(APP_NAME_FILE))] |
994
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
68 ] |
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
69 |
926
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
923
diff
changeset
|
70 |
942
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
71 ## Plugins ## |
926
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
923
diff
changeset
|
72 # names of widely used plugins |
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
923
diff
changeset
|
73 TEXT_CMDS = 'TEXT-COMMANDS' |
942
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
74 |
994
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
75 |
991
05e02f8b7eb4
core: logging refactoring, first step:
Goffi <goffi@goffi.org>
parents:
990
diff
changeset
|
76 ## Logging ## |
05e02f8b7eb4
core: logging refactoring, first step:
Goffi <goffi@goffi.org>
parents:
990
diff
changeset
|
77 LOG_BACKEND_STANDARD = 'standard' |
05e02f8b7eb4
core: logging refactoring, first step:
Goffi <goffi@goffi.org>
parents:
990
diff
changeset
|
78 LOG_BACKEND_TWISTED = 'twisted' |
05e02f8b7eb4
core: logging refactoring, first step:
Goffi <goffi@goffi.org>
parents:
990
diff
changeset
|
79 LOG_BACKEND_BASIC = 'basic' |
05e02f8b7eb4
core: logging refactoring, first step:
Goffi <goffi@goffi.org>
parents:
990
diff
changeset
|
80 LOG_BASE_LOGGER = 'root' |
1007
a7d33c7a8277
core (log): refactoring + twisted backend:
Goffi <goffi@goffi.org>
parents:
1005
diff
changeset
|
81 LOG_TWISTED_LOGGER = 'twisted' |
994
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
82 LOG_OPT_PREFIX = 'log_' |
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
83 # (option_name, default_value) tuples |
1005
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
84 LOG_OPT_COLORS = ('colors', 'true') # true for auto colors, force to have colors even if stdout is not a tty, false for no color |
994
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
85 LOG_OPT_LEVEL = ('level', 'info') |
1005
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
86 LOG_OPT_FORMAT = ('fmt', '%(message)s') # similar to logging format. |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
87 LOG_OPT_LOGGER = ('logger', '') # regex to filter logger name |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
88 LOG_OPT_OUTPUT_SEP = '//' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
89 LOG_OPT_OUTPUT_DEFAULT = 'default' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
90 LOG_OPT_OUTPUT_MEMORY = 'memory' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
91 LOG_OPT_OUTPUT_MEMORY_LIMIT = 50 |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
92 LOG_OPT_OUTPUT_FILE = 'file' # file is implicit if only output |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
93 LOG_OPT_OUTPUT = ('output', LOG_OPT_OUTPUT_SEP + LOG_OPT_OUTPUT_DEFAULT) # //default = normal output (stderr or a file with twistd), path/to/file for a file (must be the first if used), //memory for memory (options can be put in parenthesis, e.g.: //memory(500) for a 500 lines memory) |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
94 LOG_OPTIONS = (LOG_OPT_COLORS, LOG_OPT_LEVEL, LOG_OPT_FORMAT, LOG_OPT_LOGGER, LOG_OPT_OUTPUT) |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
95 LOG_LVL_DEBUG = 'DEBUG' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
96 LOG_LVL_INFO = 'INFO' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
97 LOG_LVL_WARNING = 'WARNING' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
98 LOG_LVL_ERROR = 'ERROR' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
99 LOG_LVL_CRITICAL = 'CRITICAL' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
100 LOG_LEVELS = (LOG_LVL_DEBUG, LOG_LVL_INFO, LOG_LVL_WARNING, LOG_LVL_ERROR, LOG_LVL_CRITICAL) |
994
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
101 |
991
05e02f8b7eb4
core: logging refactoring, first step:
Goffi <goffi@goffi.org>
parents:
990
diff
changeset
|
102 |
942
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
103 ## Misc ## |
1003
52ec79aa5bbe
memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents:
1001
diff
changeset
|
104 SAVEFILE_DATABASE = APP_NAME_FILE + ".db" |
942
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
105 IQ_SET = '/iq[@type="set"]' |
994
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
106 ENV_PREFIX = 'SAT_' # Prefix used for environment variables |
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
107 |
990
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
108 |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
109 ## ANSI escape sequences ## |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
110 # XXX: used for logging |
1005
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
111 # XXX: they will be probably moved in a dedicated module in the future |
990
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
112 ANSI_RESET = '\033[0m' |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
113 ANSI_NORMAL_WEIGHT = '\033[22m' |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
114 ANSI_FG_BLACK, ANSI_FG_RED, ANSI_FG_GREEN, ANSI_FG_YELLOW, ANSI_FG_BLUE, ANSI_FG_MAGENTA, ANSI_FG_CYAN, ANSI_FG_WHITE = ('\033[3%dm' % nb for nb in xrange(8)) |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
115 ANSI_BOLD = '\033[1m' |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
116 ANSI_BLINK = '\033[5m' |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
117 ANSI_BLINK_OFF = '\033[25m' |