Skip to main content

Generates dummy logs based on configuration files

Project description

log_generator generates dummy logs based on configuration files.

usage: log-generator [-h] [--level LEVEL] [--truncate] /path/to/config

Generate log events

positional arguments:
  /path/to/config       Path to configuration directory or file

optional arguments:
  -h, --help            show this help message and exit
  --level LEVEL, -l LEVEL
                        Logging level
  --truncate, -t        Truncate the log files on start

Configuration File

Log generator uses a set of configuration files to define how to generate logs. You can see the schema for configuration files in log_generator/schema.yaml. There are 6 required properties: name, file, format, frequency, amount, and fields:

name:

Name of the logs being generated (for logging purposes only)

file:

The path to the file where to write the logs to

frequency:

Time frame of how frequently to output logs

amount:

Number of logs to create per tick

enabled:

(optional) Boolean as to whether the configuration file should be used (default True)

offset:

(optional) Time frame of the offset, from now, the timestamps should be

jitter:

(optional) Time frame of the jitter the timestamps should be.

format:

The format of the log

fields:

A dictionary of fields to be substituted into the log format

Each property of fields should be one of the following types:

type:

One of enum, timestamp, integer, float, chance, ip

repeat:

(optional) Number of times to repeat the current value before generating (default 1)

change:

(optional) Float probability [0..1] that the current value will change (default 1)

value:

(optional) The initial value for the field

Enum (enum)

A list of values that have a uniform distribution of being selected.

values:

List of possible options

Timestamp (timestamp)

A timestamp.

format:

The format that the timestamp should have

Integer (integer)

A random integer value.

min:

Minimum value of the integer

max:

Maximum value of the integer

Float (float)

A random floating point value.

min:

Minimum value of the float

max:

Maximum value of the float

Chance (chance)

A set of options and associated weights to define the probability of being selected

choices:

A list of objects with two properties: option and weight

choices.*.option:

The value of the option

choices.*.weight:

The probability of being selected

IP Address (ip)

A randomly generated IP address.

Examples

Apache 2.4 Access:

name: Apache General Access
file: /var/log/httpd/apache_access
format: "{log_ip} - - [{log_time} +0000] \"{log_method} {log_path} HTTP/1.1\" {log_status} {log_bytes}"
frequency:
  seconds: 5
offset:
  seconds: 0
jitter:
  seconds: 5
amount: 50
fields:
  log_ip:
    type: ip
  log_time:
    type: timestamp
    format: "%d/%b/%Y:%H:%M:%S"
  log_method:
    type: enum
    values: [POST, GET, PUT, PATCH, DELETE]
  log_path:
    type: enum
    values:
      - /auth
      - /alerts
      - /events
      - /playbooks
      - /lists
      - /fieldsets
      - /customers
      - /collectors
      - /parsers
      - /users
  log_status:
    type: enum
    values: [200, 201, 204, 300, 301, 400, 401, 403, 404, 500, 503]
  log_bytes:
    type: integer
    min: 2000
    max: 5000

Custom log:

name: Simulated Field Change
file: /var/log/server/status
format: "{log_time} server status: {log_colour}"
frequency:
  seconds: 11
offset:
  seconds: 0
amount: 1
fields:
  log_time:
    type: timestamp
    format: "%Y-%m-%dT%H:%M:%SZ"
  log_colour:
    type: chance
    repeat: 11
    change: 0.25
    value: green
    choices:
      - option: red
        weight: 0.2
      - option: yellow
        weight: 0.2
      - option: green
        weight: 0.6

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

log_generator-1.0.2.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

log_generator-1.0.2-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file log_generator-1.0.2.tar.gz.

File metadata

  • Download URL: log_generator-1.0.2.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.6

File hashes

Hashes for log_generator-1.0.2.tar.gz
Algorithm Hash digest
SHA256 c48cd1712dd03b96a05b90b3a89f2a1adaee932a12494b30e44bc7577fd6c0c4
MD5 ca96cdea55b91ab75da68d75c6eb44d7
BLAKE2b-256 69e59f11a257b003827a4896430c0e2e57c41f1823991b9cd1c0bbfa03133322

See more details on using hashes here.

File details

Details for the file log_generator-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: log_generator-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.6

File hashes

Hashes for log_generator-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 69d7912e10cf6aff58dfda29054fa75ac2b0de817a5621020fd868333ba018f0
MD5 3912ff1a340aad19ac1557059351ba6c
BLAKE2b-256 adaa35f80bba2bf7c96ff1478c2cce5d95c5249c0bd8ce9a8a91dbf26ab8ca3a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page