Ana içeriğe atla

General Information

Connection Type

logback

UI Documentation

Endpoints

List Connections

GET /apiops/projects/{projectName}/connections/?type=logback

Get Connection

GET /apiops/projects/{projectName}/connections/{connectionName}/

Create Connection

POST /apiops/projects/{projectName}/connections/{connectionName}/

Update Connection

PUT /apiops/projects/{projectName}/connections/{connectionName}/

Delete Connection

DELETE /apiops/projects/{projectName}/connections/{connectionName}/

List Connections

Endpoint

GET /apiops/projects/{projectName}/connections/?type=logback

Request

Headers

HeaderValue
AuthorizationBearer

Path Parameters

ParameterTypeRequiredDescription
projectNamestringYesProject name
Note: The type query parameter is required to filter connections by type.

cURL Example

curl -X GET \
  "https://demo.apinizer.com/apiops/projects/MyProject/connections/" \
  -H "Authorization: Bearer YOUR_TOKEN"

Get Connection

Endpoint

GET /apiops/projects/{projectName}/connections/{connectionName}/

Request

Headers

HeaderValue
AuthorizationBearer

Path Parameters

ParameterTypeRequiredDescription
projectNamestringYesProject name
connectionNamestringYesConnection name

Response

Success Response (200 OK)

{
  "success": true,
  "resultList": [
    {
      "type": "logback",
      "name": "my-logback-connection",
      "description": "Logback connection for file logging",
      "deployToWorker": true,
      "enabled": true,
      "logPath": "/var/log/apinizer/",
      "logFileName": "ApinizerApiProxyTraffic",
      "logPodName": "worker-1",
      "logFilenamePattern": "%d{yyyy-MM-dd}.%i.log",
      "logPattern": "%d{yyyy-MM-dd HH:mm:ss.SSS}[%m]%n",
      "maxFileSize": 25,
      "maxHistory": 30,
      "totalSizeCap": 10
    }
  ],
  "resultCount": 1
}

cURL Example

curl -X GET \
  "https://demo.apinizer.com/apiops/projects/MyProject/connections/my-logback-connection/" \
  -H "Authorization: Bearer YOUR_TOKEN"

Create Connection

Endpoint

POST /apiops/projects/{projectName}/connections/{connectionName}/

Request

Headers

HeaderValue
AuthorizationBearer
Content-Typeapplication/json

Path Parameters

ParameterTypeRequiredDescription
projectNamestringYesProject name
connectionNamestringYesConnection name

Request Body

Full JSON Body Example - Basic Logback Connection
{
  "type": "logback",
  "name": "my-logback-connection",
  "description": "Logback connection for file logging",
  "deployToWorker": true,
  "enabled": true,
  "logPath": "/var/log/apinizer/",
  "logFileName": "ApinizerApiProxyTraffic",
  "logPodName": "",
  "logFilenamePattern": "%d{yyyy-MM-dd}.%i.log",
  "logPattern": "%d{yyyy-MM-dd HH:mm:ss.SSS}[%m]%n",
  "maxFileSize": 25,
  "maxHistory": 30,
  "totalSizeCap": 10
}
Full JSON Body Example - Custom Pattern
{
  "type": "logback",
  "name": "my-custom-logback",
  "description": "Logback with custom pattern",
  "deployToWorker": true,
  "enabled": true,
  "logPath": "/opt/logs/",
  "logFileName": "ApiTraffic",
  "logPodName": "pod-1",
  "logFilenamePattern": "%d{yyyy-MM-dd-HH}.%i.log",
  "logPattern": "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level %logger{36} - %msg%n",
  "maxFileSize": 50,
  "maxHistory": 7,
  "totalSizeCap": 5
}
Full JSON Body Example - Unbounded Retention
{
  "type": "logback",
  "name": "my-unbounded-logback",
  "description": "Logback with unbounded retention",
  "deployToWorker": true,
  "enabled": true,
  "logPath": "/var/log/apinizer/",
  "logFileName": "ApinizerApiProxyTraffic",
  "logPodName": "",
  "logFilenamePattern": "%d{yyyy-MM-dd}.%i.log",
  "logPattern": "%d{yyyy-MM-dd HH:mm:ss.SSS}[%m]%n",
  "maxFileSize": 25,
  "maxHistory": 0,
  "totalSizeCap": 0
}
Request Body Fields
Common Fields
FieldTypeRequiredDefaultDescription
typestringYes-Connection type discriminator field. Identifies the connection type in API requests/responses.
namestringYes-Connection name (must match path parameter)
descriptionstringNo-Connection description
deployToWorkerbooleanNotrueWhether to deploy to worker
enabledbooleanNotrueWhether connection is enabled
Logback-Specific Fields
FieldTypeRequiredDefaultDescription
logPathstringYes/path/to/logs/Directory path where log files will be written (must end with /)
logFileNamestringYesApinizerApiProxyTrafficBase name for log files
logPodNamestringYes""Pod/host identifier (auto-filled with hostname if empty)
logFilenamePatternstringYes%d{yyyy-MM-dd}.%i.logPattern for rolled log file names (date and index pattern)
logPatternstringYes%d{yyyy-MM-dd HH:mm:ss.SSS}[%m]%nLog message format pattern
maxFileSizeintegerYes25Maximum size of a single log file in MB (before rolling)
maxHistoryintegerYes0Maximum number of days/hours to keep rolled log files (0 = unbounded)
totalSizeCapintegerYes0Maximum total size of all log files in GB (0 = unbounded)

Log Pattern Format

  • %d{pattern} - Date/time with pattern (e.g., yyyy-MM-dd HH:mm:ss.SSS)
  • %m - Message content
  • %n - Newline
  • %thread - Thread name
  • %level - Log level
  • %logger{length} - Logger name (with optional length)
  • %msg - Message
  • See Logback PatternLayout documentation for full pattern syntax

Filename Pattern Format

  • %d{pattern} - Date pattern for rolled files (e.g., yyyy-MM-dd)
  • %i - Index number for files rolled on the same day
  • Example: %d{yyyy-MM-dd}.%i.log creates files like 2024-01-15.0.log, 2024-01-15.1.log

Notes

  • logPath is required and should end with / (automatically added if missing).
  • logFileName is required and should not start with / (automatically removed if present).
  • logPodName is auto-filled with hostname if empty or not provided.
  • logFilenamePattern uses Logback date pattern syntax.
  • logPattern uses Logback PatternLayout syntax.
  • maxFileSize is in MB (default: 25 MB).
  • maxHistory is in days/hours (0 = unbounded, keep all files).
  • totalSizeCap is in GB (0 = unbounded, no size limit).
  • File rolling occurs when maxFileSize is reached or time-based pattern triggers.
  • Final log file name format: {logPath}{logFileName}-{logPodName}-{logFilenamePattern}

Response

Success Response (200 OK)

{
  "success": true,
  "deploymentResult": {
    "success": true,
    "deploymentResults": [
      {
        "environmentName": "production",
        "success": true,
        "message": "Deployment successful"
      }
    ]
  }
}

cURL Example

curl -X POST \
  "https://demo.apinizer.com/apiops/projects/MyProject/connections/my-logback-connection/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "logback",
    "name": "my-logback-connection",
    "description": "Logback connection for file logging",
    "deployToWorker": true,
    "enabled": true,
    "logPath": "/var/log/apinizer/",
    "logFileName": "ApinizerApiProxyTraffic",
    "logPodName": "",
    "logFilenamePattern": "%d{yyyy-MM-dd}.%i.log",
    "logPattern": "%d{yyyy-MM-dd HH:mm:ss.SSS}[%m]%n",
    "maxFileSize": 25,
    "maxHistory": 30,
    "totalSizeCap": 10
  }'

Update Connection

Endpoint

PUT /apiops/projects/{projectName}/connections/{connectionName}/

Request

Headers

HeaderValue
AuthorizationBearer
Content-Typeapplication/json

Path Parameters

ParameterTypeRequiredDescription
projectNamestringYesProject name
connectionNamestringYesConnection name (must match name in body)

Request Body

Full JSON Body Example
{
  "type": "logback",
  "name": "my-logback-connection",
  "description": "Updated Logback connection for file logging",
  "deployToWorker": true,
  "enabled": true,
  "logPath": "/var/log/apinizer/prod/",
  "logFileName": "ApinizerApiProxyTrafficProd",
  "logPodName": "worker-1",
  "logFilenamePattern": "%d{yyyy-MM-dd-HH}.%i.log",
  "logPattern": "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n",
  "maxFileSize": 50,
  "maxHistory": 90,
  "totalSizeCap": 20
}
Note: Request body structure is the same as Create Connection. All fields should be provided for update.

Response

Success Response (200 OK)

{
  "success": true,
  "deploymentResult": {
    "success": true,
    "deploymentResults": [...]
  }
}

Delete Connection

Endpoint

DELETE /apiops/projects/{projectName}/connections/{connectionName}/

Request

Headers

HeaderValue
AuthorizationBearer

Path Parameters

ParameterTypeRequiredDescription
projectNamestringYesProject name
connectionNamestringYesConnection name

Response

Success Response (200 OK)

{
  "success": true,
  "deploymentResult": {
    "success": true,
    "deploymentResults": [...]
  }
}

Notes and Warnings

  • Log Path:
    • logPath must be a valid directory path
    • Path should end with / (automatically added if missing)
    • Ensure the directory exists and is writable by the application
    • Use absolute paths for clarity
  • File Naming:
    • Final log file name: {logPath}{logFileName}-{logPodName}-{logFilenamePattern}
    • Example: /var/log/apinizer/ApinizerApiProxyTraffic-worker-1-2024-01-15.0.log
    • logPodName is auto-filled with hostname if empty
  • File Rolling:
    • Files roll when maxFileSize is reached or time-based pattern triggers
    • Rolled files use index numbers (.0.log, .1.log, etc.)
    • Date pattern in logFilenamePattern determines time-based rolling
  • Retention Policy:
    • maxHistory - Maximum number of days/hours to keep rolled files (0 = unbounded)
    • totalSizeCap - Maximum total size of all log files in GB (0 = unbounded)
    • Set both to 0 for unbounded retention (not recommended for production)
  • File Size:
    • maxFileSize is in MB (default: 25 MB)
    • Larger files reduce number of files but increase processing time
    • Smaller files create more files but are easier to manage
  • Log Pattern:
    • Uses Logback PatternLayout syntax
    • Common patterns: %d{yyyy-MM-dd HH:mm:ss.SSS}[%m]%n (date + message)
    • See Logback documentation for full pattern syntax
  • Performance:
    • File I/O can impact performance
    • Use appropriate maxFileSize to balance performance and file management
    • Consider disk I/O capacity when setting retention policies
  • Disk Space:
    • Monitor disk space usage
    • Set totalSizeCap to prevent disk space exhaustion
    • Use maxHistory to automatically clean up old files
  • Permissions:
    • Ensure application has write permissions to logPath
    • Directory must exist before logging starts
    • Consider using dedicated log directories
  • Deployment: Connection changes require deployment to take effect. Set deployToWorker: true or deploy manually.