# Have Nginx Access_log and Error_log Log to Stdout and Stderr of Master Process

To configure Nginx to log to `stdout` and `stderr`, which is useful for containerized environments like Docker, you need to adjust the `access_log` and `error_log` directives in the Nginx configuration. This approach helps capture logs in the standard output and error streams, which can then be managed by Docker or other container orchestration tools.

Here’s how you can set up Nginx to log to `stdout` and `stderr`:

### **1. Modify Nginx Configuration**

### **Access and Error Logs Configuration**

You need to configure Nginx to direct its access and error logs to `stdout` and `stderr` respectively. This is done by setting the log files to `/dev/stdout` and `/dev/stderr`.

**Open Nginx Configuration File:**

The configuration file is typically located at `/etc/nginx/nginx.conf`, but this can vary based on your setup.

```bash
sudo nano /etc/nginx/nginx.conf
```

**Modify Log Directives:**

Set the `access_log` and `error_log` directives to use `/dev/stdout` and `/dev/stderr`.

```
http {
    # Other configurations...

    # Direct access logs to stdout
    access_log /dev/stdout;

    # Direct error logs to stderr
    error_log /dev/stderr;

    # Other configurations...
}

```

**If using separate files for individual server blocks:**

You might need to update these directives in individual server blocks or include files, depending on your setup.

**Example:**

```
server {
    listen 80;
    server_name example.com;

    # Direct access logs to stdout
    access_log /dev/stdout;

    # Direct error logs to stderr
    error_log /dev/stderr;

    # Other server configurations...
}

```

### **2. Verify and Reload Nginx Configuration**

**Test the Configuration:**

Ensure there are no syntax errors in your configuration file.

```bash
sudo nginx -t
```

**Reload Nginx:**

Apply the changes by reloading Nginx.

```bash
sudo systemctl reload nginx
```

### **3. Docker Container Considerations**

When running Nginx inside a Docker container, the logs sent to `stdout` and `stderr` will be available in the Docker logs, which can be accessed using Docker commands.

**Example:**

```bash
docker logs <container_id>
```

### **4. Alternative Log Locations**

If you’re not using Docker but want to direct logs to the console or specific files, you can use similar configurations to redirect logs to other locations as needed.

### **Summary**

1. **Configure Nginx Logs**: Set `access_log` and `error_log` to `/dev/stdout` and `/dev/stderr` in your Nginx configuration file.
2. **Test and Reload**: Test the configuration for syntax errors and reload Nginx to apply changes.
3. **Docker Integration**: Logs sent to `stdout` and `stderr` are captured by Docker and can be viewed using Docker logs commands.

By configuring Nginx to log to `stdout` and `stderr`, you can integrate it smoothly into containerized environments or other systems where log management is handled via standard streams.