Skip to main content
Logger Middleware
=========================

Permite almacenar en una base de datos de Mongo los eventos que son generados
en los distintos recursos de tipo _REST_ de una aplicación realizada en Django


### Dependencias

Tiene dependencia con las librerias:
- pymongo >= 3.6.1

Requerimientos:

- Python 3.6 or higher
- MongoDB 3.4 or higher

### Instalación

Se puede instalar como una libreria por medio de los siguientes medios:

- Comando PIP

- Repositorio en Github

#### Comando PIP

Se puede ejecutar el siguiente comando:

```
pip install django-logs-middleware
```

#### Repositorio

Dentro del archivo `requirements.txt` se debe de agregar la línea

```
git+https://github.com/AirBit-Club/D220180414_logs-middleware
```

Esto genera la libreria por medio del código fuente.

_Nota_:
Tener en consideración que este método solicita autenticación por medio de la cuenta de github


### Uso:


Dentro del archivo `settings.py` agregar

- Agregar a la lista de aplicaciones:

```python

INSTALLED_APPS = [
...,
'logs'
]

```

- Variables


| Variable | Requerido | Datos | Descripción |
| -----| :---------: | :-----: | :----------- |
| APP_NAME | Opcional | String | Indica el nombre de la aplicación|
| LOGS | Opcional | Dictionary | Es un diccionario con las configuraciones personalizadas de la libreria|


```python

INSTALLED_APPS = 'A cool app name'

LOGS = {
... ,
...
}

```

### Como funciona:

Pone a dispocición una clase para el middleware de la aplicación en Django el cual registra cada uno de los eventos
que se generan cuando se solicita algun recurso de la aplicación.

La clase que expone es `LogResourceMiddleware` la cual se puede agregar a la variable `MIDDLEWARE` quedando
de la siguiente forma:

```python
MIDDLEWARE = [
... ,
'logs.middleware.LogResourceMiddleware'
]

```

#### Registrar solo errores

Si bandera `only_errors` posee un valor `True`se almacenaran unicamente los errores que genere la aplicación


```python

LOGS = {
"only_errors" : True,
}

```

En caso que no se coloque la bandera el valor por defecto es `False`


#### Ambientes

Por defecto se poseen 2 ambientes preconfigurados en la libreria :
- development
- testing

La configuración para cada uno de ellos es:

**Development**
```
- Host: localhost
- Port: 27017
- Database: general
- Collection: general
```

**testing**
```
- Host: 10.232.6.1
- Port: 27017
- Database: airbit_db
- Collection: airbit_db
```

Para poder indicar cual de los ambientes se desea utilizar se puede agregar la llave environment a la variable logs e indicando el ambiente que se desea

```
LOGS = {
... ,
'environment': 'development'
}

```

##### Modificar valores de los ambientes

Si se desea modificar el valor de algun ambiente predefinido se debe de añadir como llave el nombre del ambiente
e indicar en un listado el la llave que se quiere modifiar y el nuevo valor a utilizar como por ejemplo:

```
LOGS = {
... ,
'environment': 'testing',
'testing': {
'PORT': 3300
}
}

```

Actualmente las llaves que se pueden modificar para los ambientes son:

|Llave|Tipo|Descripción|
|-----|----|-----------|
|HOST|String|Indica la IP o el nombre del host en donde se encuentra la base de datos de Mongo|
|PORT|Int| Puerto para la conexión con la base de datos|
|USER|String| El usuario para realizar la conexión en la base de datos|
|PASSWORD|String| Contraseña para la autenticación en la base de datos|
|DATABASE|String| Nombre de la base de datos en la cual se estará conectado|
|COLLECTION|String|Collecion donde se estarán almacenando los registros del log|


##### Ambientes personalizados

Se pueden declarar nuevos ambientes a los ya predefinidos dentro de la libreria.

```
LOGS = {
... ,
'production': {
'HOST': <- some cool IP or hostname- >,
'PORT': <- some one Port- >,
'DATABASE': <- DB ->,
'COLLECTION': <- CL ->,
'USER': <-Tipo opcional->,
'PASSWORD': <-Tipo opcional->,

}
}

```

Si se desea hacer uso del nuevo ambiente declarado se puede indicar el la llave `environment`

```
LOGS = {
... ,
'environment': 'production',
}
```

Release files for django-logs-middleware 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-logs-middleware 0.1.2
File Size Uploaded
django-logs-middleware-0.1.2.tar.gz 9.7 kB Details

Release files / django-logs-middleware-0.1.2.tar.gz

Download URL django-logs-middleware-0.1.2.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b504ca4b3859f6098d83ab5335a6a06e1f333239774172343d53026e14d27c73
BLAKE2b-256 checksum
How to use checksums
a5f544988131aed04e05283cc87c93c79c3c61654c70cddcd219ce733b69c32a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.2 This release

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page