Skip to content


Pode has inbuilt Request logging logic, that will parse and return a valid log item for whatever method of logging you supply.


To enable and use the Request logging you use the Enable-PodeRequestLogging function, supplying a logging method from New-PodeLoggingMethod.

The Request type logic will format a string using Combined Log Format. This string is then supplied to the logging method's scriptblock. If you're using a Custom logging method and want the raw hashtable instead, you can supply -Raw to Enable-PodeRequestLogging.


Log to Terminal

The following example simply enables Request logging, and will output all items to the terminal:

New-PodeLoggingMethod -Terminal | Enable-PodeRequestLogging

Using Raw Item

The following example uses a Custom logging method, and sets Request logging to return and supply the raw hashtable to the Custom method's scriptblock. The Custom method simply logs the Host an StatusCode to the terminal (but could be to something like an S3 bucket):

$method = New-PodeLoggingMethod -Custom -ScriptBlock {
    "$($item.Host) - $($item.Response.StatusCode)" | Out-Default

$method | Enable-PodeRequestLogging -Raw

Raw Request

The raw Request hashtable that will be supplied to any Custom logging methods will look as follows:

    Host = ''
    RfcUserIdentity = '-'
    User = '-'
    Date = '14/Jun/2018:20:23:52 +01:00'
    Request = @{
        Method = 'GET'
        Resource = '/api/users'
        Protocol = "HTTP/1.1"
        Referrer = '-'
        Agent = '<user-agent>'
    Response = @{
        StatusCode = '200'
        StautsDescription = 'OK'
        Size = '9001'