Mercurial > libervia-backend
annotate src/core/constants.py @ 1005:b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
- formatting is inspired from, and use when possible, standard logging. "message", "levelname", and "name" are the only format managed, depending on backend more can be managed (standard backend formats are specified in official python logging doc)
- name filter use regular expressions. It's possible to log only plugins with SAT_LOG_LOGGER="^sat.plugins". To log only XEPs 96 & 65, we can use SAT_LOG_LOGGER='(xep_0095|xep_0065)'
- output management use a particular syntax:
- output handler are name with "//", so far there are "//default" (most of time stderr), "//memory" and "//file"
- options can be specified in parenthesis, e.g. "//memory(50)" mean a 50 lines memory buffer (50 is the current default, so that's equivalent to "//memory")
- several handlers can be specified: "//file(/tmp/sat.log)//default" will use the default logging + a the /tmp/sat.log file
- if there is only one handler, it use the file handler: "/tmp/sat.log" is the same as "//file(/tmp/sat.log)"
- not finished, need more work for twisted and basic backends
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 05 May 2014 18:58:34 +0200 |
parents | 191f440d11b4 |
children | a7d33c7a8277 |
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' |
994
652c01ca69b1
core (log): configuration and environment variables are now checked for log level and colors:
Goffi <goffi@goffi.org>
parents:
991
diff
changeset
|
81 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
|
82 # (option_name, default_value) tuples |
1005
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
83 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
|
84 LOG_OPT_LEVEL = ('level', 'info') |
1005
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
85 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
|
86 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
|
87 LOG_OPT_OUTPUT_SEP = '//' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
88 LOG_OPT_OUTPUT_DEFAULT = 'default' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
89 LOG_OPT_OUTPUT_MEMORY = 'memory' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
90 LOG_OPT_OUTPUT_MEMORY_LIMIT = 50 |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
91 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
|
92 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
|
93 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
|
94 LOG_LVL_DEBUG = 'DEBUG' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
95 LOG_LVL_INFO = 'INFO' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
96 LOG_LVL_WARNING = 'WARNING' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
97 LOG_LVL_ERROR = 'ERROR' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
98 LOG_LVL_CRITICAL = 'CRITICAL' |
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
99 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
|
100 |
991
05e02f8b7eb4
core: logging refactoring, first step:
Goffi <goffi@goffi.org>
parents:
990
diff
changeset
|
101 |
942
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
102 ## 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
|
103 SAVEFILE_DATABASE = APP_NAME_FILE + ".db" |
942
598fc223cf59
core: more organisation in constants.py
Goffi <goffi@goffi.org>
parents:
930
diff
changeset
|
104 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
|
105 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
|
106 |
990
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
107 |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
108 ## ANSI escape sequences ## |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
109 # XXX: used for logging |
1005
b4af31a8a4f2
core (logs): added formatting, name filter and outputs management:
Goffi <goffi@goffi.org>
parents:
1004
diff
changeset
|
110 # 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
|
111 ANSI_RESET = '\033[0m' |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
112 ANSI_NORMAL_WEIGHT = '\033[22m' |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
113 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
|
114 ANSI_BOLD = '\033[1m' |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
115 ANSI_BLINK = '\033[5m' |
f0e407709d8e
core (constants): added some basic ANSI escape codes
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
116 ANSI_BLINK_OFF = '\033[25m' |