Browse Source

Automate generation of the sample and debian log configs (#6627)

tags/v1.8.0rc1
Richard van der Hoff 4 years ago
committed by GitHub
parent
commit
08815566bc
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 73 additions and 40 deletions
  1. +1
    -0
      changelog.d/6627.misc
  2. +3
    -0
      debian/build_virtualenv
  3. +6
    -0
      debian/changelog
  4. +0
    -1
      debian/install
  5. +0
    -36
      debian/log.yaml
  6. +2
    -2
      docs/sample_log_config.yaml
  7. +10
    -0
      scripts-dev/generate_sample_config
  8. +43
    -0
      scripts/generate_log_config
  9. +8
    -1
      synapse/config/logger.py

+ 1
- 0
changelog.d/6627.misc View File

@@ -0,0 +1 @@
Automate generation of the sample log config.

+ 3
- 0
debian/build_virtualenv View File

@@ -85,6 +85,9 @@ PYTHONPATH="$tmpdir" \

' > "${PACKAGE_BUILD_DIR}/etc/matrix-synapse/homeserver.yaml"

# build the log config file
"${TARGET_PYTHON}" -B "${VIRTUALENV_DIR}/bin/generate_log_config" \
--output-file="${PACKAGE_BUILD_DIR}/etc/matrix-synapse/log.yaml"

# add a dependency on the right version of python to substvars.
PYPKG=`basename $SNAKE`


+ 6
- 0
debian/changelog View File

@@ -1,3 +1,9 @@
matrix-synapse-py3 (1.7.3ubuntu1) UNRELEASED; urgency=medium

* Automate generation of the default log configuration file.

-- Richard van der Hoff <richard@matrix.org> Fri, 03 Jan 2020 13:55:38 +0000

matrix-synapse-py3 (1.7.3) stable; urgency=medium

* New synapse release 1.7.3.


+ 0
- 1
debian/install View File

@@ -1,2 +1 @@
debian/log.yaml etc/matrix-synapse
debian/manage_debconf.pl /opt/venvs/matrix-synapse/lib/

+ 0
- 36
debian/log.yaml View File

@@ -1,36 +0,0 @@

version: 1

formatters:
precise:
format: '%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s- %(message)s'

filters:
context:
(): synapse.logging.context.LoggingContextFilter
request: ""

handlers:
file:
class: logging.handlers.RotatingFileHandler
formatter: precise
filename: /var/log/matrix-synapse/homeserver.log
maxBytes: 104857600
backupCount: 10
filters: [context]
encoding: utf8
console:
class: logging.StreamHandler
formatter: precise
level: WARN

loggers:
synapse:
level: INFO

synapse.storage.SQL:
level: INFO

root:
level: INFO
handlers: [file, console]

+ 2
- 2
docs/sample_log_config.yaml View File

@@ -1,4 +1,4 @@
# Example log config file for synapse.
# Log configuration for Synapse.
#
# This is a YAML file containing a standard Python logging configuration
# dictionary. See [1] for details on the valid settings.
@@ -20,7 +20,7 @@ handlers:
file:
class: logging.handlers.RotatingFileHandler
formatter: precise
filename: /home/rav/work/synapse/homeserver.log
filename: /var/log/matrix-synapse/homeserver.log
maxBytes: 104857600
backupCount: 10
filters: [context]


+ 10
- 0
scripts-dev/generate_sample_config View File

@@ -7,12 +7,22 @@ set -e
cd `dirname $0`/..

SAMPLE_CONFIG="docs/sample_config.yaml"
SAMPLE_LOG_CONFIG="docs/sample_log_config.yaml"

check() {
diff -u "$SAMPLE_LOG_CONFIG" <(./scripts/generate_log_config) >/dev/null || return 1
}

if [ "$1" == "--check" ]; then
diff -u "$SAMPLE_CONFIG" <(./scripts/generate_config --header-file docs/.sample_config_header.yaml) >/dev/null || {
echo -e "\e[1m\e[31m$SAMPLE_CONFIG is not up-to-date. Regenerate it with \`scripts-dev/generate_sample_config\`.\e[0m" >&2
exit 1
}
diff -u "$SAMPLE_LOG_CONFIG" <(./scripts/generate_log_config) >/dev/null || {
echo -e "\e[1m\e[31m$SAMPLE_LOG_CONFIG is not up-to-date. Regenerate it with \`scripts-dev/generate_sample_config\`.\e[0m" >&2
exit 1
}
else
./scripts/generate_config --header-file docs/.sample_config_header.yaml -o "$SAMPLE_CONFIG"
./scripts/generate_log_config -o "$SAMPLE_LOG_CONFIG"
fi

+ 43
- 0
scripts/generate_log_config View File

@@ -0,0 +1,43 @@
#!/usr/bin/env python3

# -*- coding: utf-8 -*-
# Copyright 2020 The Matrix.org Foundation C.I.C.
#
# Licensed 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.

import argparse
import sys

from synapse.config.logger import DEFAULT_LOG_CONFIG

if __name__ == "__main__":
parser = argparse.ArgumentParser()

parser.add_argument(
"-o",
"--output-file",
type=argparse.FileType("w"),
default=sys.stdout,
help="File to write the configuration to. Default: stdout",
)

parser.add_argument(
"-f",
"--log-file",
type=str,
default="/var/log/matrix-synapse/homeserver.log",
help="name of the log file",
)

args = parser.parse_args()
args.output_file.write(DEFAULT_LOG_CONFIG.substitute(log_file=args.log_file))

+ 8
- 1
synapse/config/logger.py View File

@@ -40,7 +40,14 @@ from synapse.util.versionstring import get_version_string
from ._base import Config, ConfigError

DEFAULT_LOG_CONFIG = Template(
"""
"""\
# Log configuration for Synapse.
#
# This is a YAML file containing a standard Python logging configuration
# dictionary. See [1] for details on the valid settings.
#
# [1]: https://docs.python.org/3.7/library/logging.config.html#configuration-dictionary-schema

version: 1

formatters:


Loading…
Cancel
Save