🐞Logging / Debugging

The SOFA Java class has a builtin, detailed logging funtion to help finding and diagnosing any issue you may encounter.

To enable the Java Logger framework, you need to add a Logger properties file SOFA-Logging.properties in the current directory of your running application.

SOFA-Logging.properties Example

# SOFA - Simple OAuth 2.0 Framework for Authentication - Logging configuration file
#
# Notes:
# - The SOFA class only uses logging level FINE (for debugging) and WARNING (for errors)
# - To disable logging, comment out all "handlers" properties or remove/rename this configuration file)

# Logging level for the SOFA class
SOFA.level                                  = FINE

# Specify where the logging output should go
#handlers                                   = java.util.logging.ConsoleHandler
#handlers                                   = java.util.logging.FileHandler
handlers	                            = java.util.logging.ConsoleHandler, java.util.logging.FileHandler

# Logging output format, e.g. "2022-01-27T16:44:00.322 FINE        SOFA Version ..."
java.util.logging.SimpleFormatter.format    = %1$tFT%1$tT.%1$tL %4$-11s %5$s %6$s %n

# Define logging output to system console
java.util.logging.ConsoleHandler.level      = ALL
java.util.logging.ConsoleHandler.formatter  = java.util.logging.SimpleFormatter

# Define logging output to file (maximum 10 files, each up to about 60 kB)
java.util.logging.FileHandler.pattern       = ALL
java.util.logging.FileHandler.formatter     = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.pattern       = SOFA-Log-%g.txt
java.util.logging.FileHandler.count         = 10
java.util.logging.FileHandler.limit         = 60000
java.util.logging.FileHandler.append        = true

This Logger configuration file writes the logging output to System.out and to the files SOFA-Log-0.txt to SOFA-Log-9.txt.

Output Example

2022-10-19T15:54:29.742 FEIN        SOFA (Simple OAuth 2.0 Framework for Authentication) Version 1.0.0 (2022-10-19) initialization called  
2022-10-19T15:54:29.742 FEIN        SOFA running on OS platform <Windows 8 6.2/amd64>  
2022-10-19T15:54:29.742 FEIN        SOFA running on JVM version <International Business Machines Corporation openj9-0.29.0>  
2022-10-19T15:54:29.742 FEIN        SOFA AES-256 cipher initialized  
2022-10-19T15:54:29.742 FEIN        SOFA object initialized  
2022-10-19T15:54:29.742 FEIN        SOFA authenticate() called  
2022-10-19T15:54:29.742 FEIN        OAuth authorization endpoint <https://login.microsoftonline.com/11111111-2222-3333-4444-555555555555/oauth2/v2.0/token>  
2022-10-19T15:54:29.742 FEIN        OAuth authorization scope <https://outlook.office365.com/.default>  
2022-10-19T15:54:29.742 FEIN        OAuth client ID <66666666-7777-8888-9999-111111111111>  
2022-10-19T15:54:29.742 FEIN        OAuth grant type <client_credentials>  
2022-10-19T15:54:29.742 FEIN        SOFA executeHttpTransaction() called  
2022-10-19T15:54:29.742 FEIN        HTTP connecting to URL <https://login.microsoftonline.com/11111111-2222-3333-4444-555555555555/oauth2/v2.0/token>  
2022-10-19T15:54:29.742 FEIN        HTTP method <POST>  
2022-10-19T15:54:29.757 FEIN        HTTP header sent <Date: Wed, 19 Oct 2022 13:54:29 GMT>  
2022-10-19T15:54:29.757 FEIN        HTTP header sent <User-Agent: SOFA/1.0.0 (Simple OAuth 2.0 Framework for Authentication)>  
2022-10-19T15:54:29.757 FEIN        HTTP header sent <Accept: application/json>  
2022-10-19T15:54:29.757 FEIN        HTTP header sent <Content-Type: application/x-www-form-urlencoded>  
2022-10-19T15:54:29.757 FEIN        HTTP header sent <Content-Length: 188>  
2022-10-19T15:54:29.945 FEIN        HTTP data size sent <188 bytes>  
2022-10-19T15:54:29.945 FEIN        HTTP connection established with cipher <TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <HTTP/1.1 200 OK>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <x-ms-ests-server: 2.1.13943.8 - WEULR1 ProdSlices>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <X-Content-Type-Options: nosniff>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <Pragma: no-cache>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <P3P: CP="DSP CUR OTPi IND OTRi ONL FIN">  
2022-10-19T15:54:30.070 FEIN        HTTP header received <Date: Wed, 19 Oct 2022 13:54:29 GMT>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <Strict-Transport-Security: max-age=31536000; includeSubDomains>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <Cache-Control: no-store, no-cache>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <Set-Cookie: stsservicecookie=estsfd; path=/; secure; samesite=none; httponly>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <Expires: -1>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <Content-Length: 1595>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <X-XSS-Protection: 0>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <x-ms-request-id: 11111111-4444-5555-6666-777777777777>  
2022-10-19T15:54:30.070 FEIN        HTTP header received <Content-Type: application/json; charset=utf-8>  
2022-10-19T15:54:30.070 FEIN        HTTP response code <200>  
2022-10-19T15:54:30.070 FEIN        HTTP data size received <1595 bytes>  
2022-10-19T15:54:30.070 FEIN        SOFA executeHttpTransaction() elapsed time <328 ms>  
2022-10-19T15:54:30.070 FEIN        SOFA parseJsonResponse() called  
2022-10-19T15:54:30.085 FEIN        OAuth access token size received <1520> bytes  
2022-10-19T15:54:30.085 FEIN        OAuth returned token type <Bearer>  
2022-10-19T15:54:30.085 FEIN        OAuth returned access token expiration <3599> seconds  
2022-10-19T15:54:30.085 FEIN        OAuth access token expiration date <Wed Oct 19 16:53:29 CEST 2022>  
2022-10-19T15:54:30.085 FEIN        SOFA getAccessToken() called  
2022-10-19T15:54:30.085 FEIN        SOFA Refresh token not necessary - Returning saved OAuth 2.0 access token 

Last updated