git: f51f8da4ef2e - 2026Q4 - sysutils/rundeck: Update 5.20.1 => 6.2.1

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Tue, 06 Oct 2026 09:55:01 UTC
The branch 2026Q4 has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f51f8da4ef2eed20178574d9bfbd945b5071194b

commit f51f8da4ef2eed20178574d9bfbd945b5071194b
Author:     Xavier Humbert <xavier@groumpf.org>
AuthorDate: 2026-10-06 09:50:43 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2026-10-06 09:54:53 +0000

    sysutils/rundeck: Update 5.20.1 => 6.2.1
    
    Release Notes:
    https://docs.rundeck.com/docs/history/6_x/version-6.0.0.html
    https://docs.rundeck.com/docs/history/6_x/version-6.0.1.html
    https://docs.rundeck.com/docs/history/6_x/version-6.1.0.html
    https://docs.rundeck.com/docs/history/6_x/version-6.2.0.html
    https://docs.rundeck.com/docs/history/6_x/version-6.2.1.html
    
    PR:             297022
    Sponsored by:   UNIS Labs (vvd)
    Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org>
    MFH:            2026Q4
    
    (cherry picked from commit 7100b86c78d8d86ac254e15ba3d7d12e8a3d3435)
---
 sysutils/rundeck/Makefile                   |  10 +-
 sysutils/rundeck/distinfo                   |   6 +-
 sysutils/rundeck/files/log4j2.properties.in | 433 ++++++++++++++++++----------
 3 files changed, 285 insertions(+), 164 deletions(-)

diff --git a/sysutils/rundeck/Makefile b/sysutils/rundeck/Makefile
index 58dba982ee1a..f08e808ff889 100644
--- a/sysutils/rundeck/Makefile
+++ b/sysutils/rundeck/Makefile
@@ -1,8 +1,8 @@
 PORTNAME=	rundeck
-DISTVERSION=	5.20.1
-DISTVERSIONSUFFIX=	-20260518
+DISTVERSION=	6.2.1
+DISTVERSIONSUFFIX=	-20260909
 CATEGORIES=	sysutils java
-MASTER_SITES=	https://packagecloud.io/pagerduty/rundeck/packages/java/org.rundeck/${DISTNAME}.war/artifacts/${DISTNAME}.war/download?/
+MASTER_SITES=	https://packages.rundeck.com/pagerduty/rundeck/packages/java/org.rundeck/${DISTNAME}.war/artifacts/${DISTNAME}.war/download?/
 EXTRACT_SUFX=	.war
 EXTRACT_ONLY=	#
 
@@ -14,7 +14,7 @@ LICENSE=	APACHE20
 
 USES=		cpe java
 CPE_VENDOR=	pagerduty
-JAVA_VERSION=	11 17
+JAVA_VERSION=	17+
 USE_RC_SUBR=	${PORTNAME}
 
 NO_ARCH=	yes
@@ -33,7 +33,7 @@ RUNDECK_HOME=		${PREFIX}/${PORTNAME}
 RUNDECK_USER?=		${PORTNAME}
 RUNDECK_GROUP?=		${PORTNAME}
 RUNDECK_LOGDIR?=	/var/log/${PORTNAME}
-RUNDECK_LOG_FILE?=	${RUNDECK_LOGDIR}/${PORTNAME}.log
+RUNDECK_LOG_FILE?=	${RUNDECK_LOGDIR}/service.log
 RUNDECK_LOG4J=		log4j2.properties
 RUNDECK_CONFIG_DIR=	${RUNDECK_HOME}/server/config
 
diff --git a/sysutils/rundeck/distinfo b/sysutils/rundeck/distinfo
index b553bdc332fd..b5e24fbd643c 100644
--- a/sysutils/rundeck/distinfo
+++ b/sysutils/rundeck/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1779186470
-SHA256 (rundeck-5.20.1-20260518.war) = 6a270029b27977bdbd32ed57301b0d2be336875a3f57f6b7e9a8f55dd2ce4173
-SIZE (rundeck-5.20.1-20260518.war) = 244439642
+TIMESTAMP = 1790353380
+SHA256 (rundeck-6.2.1-20260909.war) = c74f8845357b11052f405962ec2e7dccda6b3ad85fb5e3596ee107741cf467e7
+SIZE (rundeck-6.2.1-20260909.war) = 246627494
diff --git a/sysutils/rundeck/files/log4j2.properties.in b/sysutils/rundeck/files/log4j2.properties.in
index 5111a3883447..ab114b26303e 100644
--- a/sysutils/rundeck/files/log4j2.properties.in
+++ b/sysutils/rundeck/files/log4j2.properties.in
@@ -1,188 +1,309 @@
 ####################################################################################################
 #
-#  Log Levels
+#  Borrowed from RPM dist
 #
 ####################################################################################################
 
-# Enable logging for everything. Rarely useful
-log4j.rootLogger=warn, stdout, server-logger
 
-log4j.com.dtolabs.rundeck.core=INFO, cmd-logger
+name = Rundeck Logging Configuration
 
-#log4j.logger.org.codehaus.groovy.grails.plugins.quartz=debug,stdout
-#log4j.additivity.org.codehaus.groovy.grails.plugins.quartz=false
+property.baseDir = %%RUNDECK_LOGDIR%%
+property.classLength = 2
+property.noConsoleNoAnsi = true
+property.prefix = [%style{%d{ISO8601}}{dim, noConsoleNoAnsi=${noConsoleNoAnsi}}] %highlight{%-5p}{noConsoleNoAnsi=${noConsoleNoAnsi}} %style{%c{${classLength}}}{cyan,noConsoleNoAnsi=${noConsoleNoAnsi}}
 
-# Enable audit logging
-log4j.logger.com.dtolabs.rundeck.core.authorization=info, audit
-log4j.additivity.com.dtolabs.rundeck.core.authorization=false
+appender.console.type = Console
+appender.console.name = STDOUT
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = ${prefix} - %m%n
 
-# Enable options remote URL logging
-log4j.logger.com.dtolabs.rundeck.remoteservice.http.options=INFO, options
-log4j.additivity.com.dtolabs.rundeck.remoteservice.http.options=false
+appender.rundeck.type = RollingFile
+appender.rundeck.name = rundeck
+appender.rundeck.fileName = ${baseDir}/rundeck.log
+appender.rundeck.append = true
+appender.rundeck.bufferedIO = true
+appender.rundeck.filePattern = ${baseDir}/rundeck.log.%d{yyyy-MM-dd}.gz
+appender.rundeck.layout.type = PatternLayout
+appender.rundeck.layout.pattern = ${prefix} [%t] - %m%n
+appender.rundeck.policies.type = Policies
+appender.rundeck.policies.time.type = TimeBasedTriggeringPolicy
+appender.rundeck.policies.time.interval = 1
 
-# Enable Job changes logging
-log4j.logger.com.dtolabs.rundeck.data.jobs.changes=INFO, jobchanges
-log4j.additivity.com.dtolabs.rundeck.data.jobs.changes=false
+appender.audit.type = RollingFile
+appender.audit.name = audit
+appender.audit.fileName = ${baseDir}/rundeck.audit.log
+appender.audit.append = true
+appender.audit.bufferedIO = true
+appender.audit.filePattern = ${baseDir}/rundeck.audit.log.%d{yyyy-MM-dd}.gz
+appender.audit.layout.type = PatternLayout
+appender.audit.layout.pattern = ${prefix} - %m%n
+appender.audit.policies.type = Policies
+appender.audit.policies.time.type = TimeBasedTriggeringPolicy
+appender.audit.policies.time.interval = 1
 
-# Enable Execution event logging
-log4j.logger.org.rundeck.execution.status=INFO, execevents
-log4j.additivity.org.rundeck.execution.status=false
+appender.audit_events.type = RollingFile
+appender.audit_events.name = audit_events
+appender.audit_events.fileName = ${baseDir}/rundeck.audit.events.log
+appender.audit_events.append = true
+appender.audit_events.bufferedIO = true
+appender.audit_events.filePattern = ${baseDir}/rundeck.audit.events.log.%d{yyyy-MM-dd}.gz
+appender.audit_events.layout.type = PatternLayout
+appender.audit_events.layout.pattern = ${prefix} - %m%n
+appender.audit_events.policies.type = Policies
+appender.audit_events.policies.time.type = TimeBasedTriggeringPolicy
+appender.audit_events.policies.time.interval = 1
 
-# Enable API request logging
-log4j.logger.org.rundeck.api.requests=INFO,apirequests
-log4j.additivity.org.rundeck.api.requests=false
+#
+# audit pre authentication
+#
+appender.preauth.type = RollingFile
+appender.preauth.name = preauth
+appender.preauth.fileName = ${baseDir}/rundeck.audit.preauth.log
+appender.preauth.append = true
+appender.preauth.bufferedIO = true
+appender.preauth.filePattern = ${baseDir}/rundeck.audit.preauth.log.%d{yyyy-MM-dd}.gz
+appender.preauth.policies.type = Policies
+appender.preauth.policies.time.type = TimeBasedTriggeringPolicy
+appender.preauth.policies.time.interval = 1
+appender.preauth.layout.type = PatternLayout
+appender.preauth.layout.pattern = ${prefix} - %m%n
 
-# Enable Web access logging
-log4j.logger.org.rundeck.web.requests=INFO,access
-log4j.additivity.org.rundeck.web.requests=false
+appender.options.type = RollingFile
+appender.options.name = options
+appender.options.fileName = ${baseDir}/rundeck.options.log
+appender.options.append = true
+appender.options.bufferedIO = true
+appender.options.filePattern = ${baseDir}/rundeck.options.log.%d{yyyy-MM-dd}.gz
+appender.options.layout.type = PatternLayout
+appender.options.layout.pattern = ${prefix} %X{httpStatusCode} %X{contentLength}B %X{durationTime}ms %X{lastModifiedDateTime} [%X{jobName}] %X{url} %X{contentSHA1}%n
+appender.options.policies.type = Policies
+appender.options.policies.time.type = TimeBasedTriggeringPolicy
+appender.options.policies.time.interval = 1
 
-# Enable Storage logging
-log4j.logger.org.rundeck.storage.events=INFO,storage
-log4j.additivity.org.rundeck.storage.events=false
+appender.storage.type = RollingFile
+appender.storage.name = storage
+appender.storage.fileName = ${baseDir}/rundeck.storage.log
+appender.storage.append = true
+appender.storage.bufferedIO = true
+appender.storage.filePattern = ${baseDir}/rundeck.storage.log.%d{yyyy-MM-dd}.gz
+appender.storage.layout.type = PatternLayout
+appender.storage.layout.pattern = ${prefix} %X{action} %X{type} %X{path} %X{status} %X{metadata}%n
+appender.storage.policies.type = Policies
+appender.storage.policies.time.type = TimeBasedTriggeringPolicy
+appender.storage.policies.time.interval = 1
 
-# Enable Project manager logging
-log4j.logger.grails.app.services.rundeck.services.ProjectManagerService=INFO,stdout, server-logger
-log4j.additivity.grails.app.services.rundeck.services.ProjectManagerService=false
+appender.jobchanges.type = RollingFile
+appender.jobchanges.name = jobchanges
+appender.jobchanges.fileName = ${baseDir}/rundeck.jobs.log
+appender.jobchanges.append = true
+appender.jobchanges.bufferedIO = true
+appender.jobchanges.filePattern = ${baseDir}/rundeck.jobs.log.%d{yyyy-MM-dd}.gz
+appender.jobchanges.layout.type = PatternLayout
+appender.jobchanges.layout.pattern = ${prefix} %X{user} %X{change} [%X{id}] %X{project} "%X{groupPath}/%X{jobName}" (%X{method})%X{extraInfo}%n
+appender.jobchanges.policies.type = Policies
+appender.jobchanges.policies.time.type = TimeBasedTriggeringPolicy
+appender.jobchanges.policies.time.interval = 1
 
-# Enable this logger to log Hibernate output
-# handy to see its database interaction activity
-#log4j.logger.org.hibernate=debug,stdout
-#log4j.additivity.org.hibernate=false
+appender.execevents.type = RollingFile
+appender.execevents.name = execevents
+appender.execevents.fileName = ${baseDir}/rundeck.executions.log
+appender.execevents.append = true
+appender.execevents.bufferedIO = true
+appender.execevents.filePattern = ${baseDir}/rundeck.executions.log.%d{yyyy-MM-dd}.gz
+appender.execevents.layout.type = PatternLayout
+appender.execevents.layout.pattern = ${prefix} %X{eventUser} %X{event} [%X{id}:%X{state}] %X{project} %X{user}/%X{abortedby} \"%X{groupPath}/%X{jobName}  %X{argString}\"[%X{uuid}] %n
+appender.execevents.policies.type = Policies
+appender.execevents.policies.time.type = TimeBasedTriggeringPolicy
+appender.execevents.policies.time.interval = 1
 
-# Enable this logger to see what Spring does, occasionally useful
-#log4j.logger.org.springframework=info,stdout 
-#log4j.additivity.org.springframework=false
+appender.apirequests.type = RollingFile
+appender.apirequests.name = apirequests
+appender.apirequests.fileName = ${baseDir}/rundeck.api.log
+appender.apirequests.append = true
+appender.apirequests.bufferedIO = true
+appender.apirequests.filePattern = ${baseDir}/rundeck.api.log.%d{yyyy-MM-dd}.gz
+appender.apirequests.layout.type = PatternLayout
+appender.apirequests.layout.pattern = ${prefix} "%X{method} %X{uri}" %X{remoteHost} %X{secure} %X{remoteUser} %X{authToken} %X{duration} %X{project} (%X{userAgent})%n
+appender.apirequests.policies.type = Policies
+appender.apirequests.policies.time.type = TimeBasedTriggeringPolicy
+appender.apirequests.policies.time.interval = 1
 
-# This logger covers all of Grails' internals
-# Enable to see whats going on underneath. 
-log4j.logger.org.codehaus.groovy.grails=warn,stdout, server-logger
-log4j.additivity.org.codehaus.groovy.grails=false
+appender.access.type = RollingFile
+appender.access.name = access
+appender.access.fileName = ${baseDir}/rundeck.access.log
+appender.access.append = true
+appender.access.bufferedIO = true
+appender.access.filePattern = ${baseDir}/rundeck.access.log.%d{yyyy-MM-dd}.gz
+appender.access.layout.type = PatternLayout
+appender.access.layout.pattern = ${prefix} "%X{method} %X{uri}" %X{remoteHost} %X{secure} %X{remoteUser} %X{authToken} %X{duration} %X{project} [%X{contentType}] (%X{userAgent})%n
+appender.access.policies.type = Policies
+appender.access.policies.time.type = TimeBasedTriggeringPolicy
+appender.access.policies.time.interval = 1
 
-# This logger is useful if you just want to see what Grails
-# configures with Spring at runtime. Setting to debug will show
-# each bean that is configured
-log4j.logger.org.codehaus.groovy.grails.commons.spring=warn,stdout, server-logger
-log4j.additivity.org.codehaus.groovy.grails.commons.spring=false  
-                          
-# Interesting Logger to see what some of the Grails factory beans are doing
-log4j.logger.org.codehaus.groovy.grails.beans.factory=warn,stdout, server-logger
-log4j.additivity.org.codehaus.groovy.grails.beans.factory=false
+appender.project.type = RollingFile
+appender.project.name = project
+appender.project.fileName = ${baseDir}/rundeck.project.log
+appender.project.append = true
+appender.project.bufferedIO = true
+appender.project.filePattern = ${baseDir}/rundeck.project.log.%d{yyyy-MM-dd}.gz
+appender.project.layout.type = PatternLayout
+appender.project.layout.pattern = ${prefix} - %m%n
+appender.project.policies.type = Policies
+appender.project.policies.time.type = TimeBasedTriggeringPolicy
+appender.project.policies.time.interval = 1
 
-# This logger is for Grails' public APIs within the grails. package
-log4j.logger.grails=info,stdout, server-logger
-log4j.additivity.grails=false
+appender.cleanup.type = RollingFile
+appender.cleanup.name = cleanup
+appender.cleanup.fileName = ${baseDir}/rundeck.cleanup.log
+appender.cleanup.append = true
+appender.cleanup.bufferedIO = true
+appender.cleanup.filePattern = ${baseDir}/rundeck.cleanup.log.%d{yyyy-MM-dd}.gz
+appender.cleanup.layout.type = PatternLayout
+appender.cleanup.layout.pattern = ${prefix} - %m%n
+appender.cleanup.policies.type = Policies
+appender.cleanup.policies.time.type = TimeBasedTriggeringPolicy
+appender.cleanup.policies.time.interval = 1
 
+appender.webhooks.type = RollingFile
+appender.webhooks.name = webhooks
+appender.webhooks.fileName = ${baseDir}/rundeck.webhooks.log
+appender.webhooks.append = true
+appender.webhooks.bufferedIO = true
+appender.webhooks.filePattern = ${baseDir}/rundeck.webhooks.log.%d{yyyy-MM-dd}.gz
+appender.webhooks.layout.type = PatternLayout
+appender.webhooks.layout.pattern = ${prefix} - %m%n
+appender.webhooks.policies.type = Policies
+appender.webhooks.policies.time.type = TimeBasedTriggeringPolicy
+appender.webhooks.policies.time.interval = 1
 
-####################################################################################################
-#
-#  Appender Configuration (unlikely a change needs to be made, unless you have unique logging reqs.)
-#
-####################################################################################################
+rootLogger.level = warn
+rootLogger.appenderRef.stdout.ref = STDOUT
+rootLogger.appenderRef.rundeck.ref = rundeck
 
-#
-# stdout - ConsoleAppender
-#
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%-5p %c{1}: %m%n
+logger.interceptors.name = rundeck.interceptors
+logger.interceptors.level = info
+logger.interceptors.additivity = false
+logger.interceptors.appenderRef.stdout.ref = STDOUT
 
-#
-# cmd-logger - DailyRollingFileAppender
-#
-# Output of the RunDeck command line utilities
-#
-log4j.appender.cmd-logger=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.cmd-logger.file=/var/log/rundeck/command.log
-log4j.appender.cmd-logger.datePattern='.'yyyy-MM-dd
-log4j.appender.cmd-logger.append=true
-log4j.appender.cmd-logger.layout=org.apache.log4j.PatternLayout
-log4j.appender.cmd-logger.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c - %m%n
+logger.rundeckapp.name = rundeckapp
+logger.rundeckapp.level = info
+logger.rundeckapp.additivity = false
+logger.rundeckapp.appenderRef.stdout.ref = STDOUT
 
-#
-# server-logger - DailyRollingFileAppender
-# 
-# Captures all output from the rundeckd server.
-#
-log4j.appender.server-logger=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.server-logger.file=/var/log/rundeck/rundeck.log
-log4j.appender.server-logger.datePattern='.'yyyy-MM-dd
-log4j.appender.server-logger.append=true
-log4j.appender.server-logger.layout=org.apache.log4j.PatternLayout
-log4j.appender.server-logger.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c - %m%n
+logger.bootstrap.name = rundeckapp.BootStrap
+logger.bootstrap.level = info
+logger.bootstrap.additivity = false
+logger.bootstrap.appenderRef.stdout.ref = STDOUT
 
-#
-# audit 
-# 
-# Captures all audit events.
-#
-log4j.appender.audit=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.audit.file=/var/log/rundeck/rundeck.audit.log
-log4j.appender.audit.append=true
-log4j.appender.audit.layout=org.apache.log4j.PatternLayout
-log4j.appender.audit.layout.ConversionPattern=%d{ISO8601} - %m%n
+logger.grails.name = grails
+logger.grails.level = warn
+logger.grails.additivity = false
+logger.grails.appenderRef.stdout.ref = STDOUT
 
-#
-# options log
-#
-# Logs remote HTTP requests for Options JSON data
-#
-log4j.appender.options=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.options.file=/var/log/rundeck/rundeck.options.log
-log4j.appender.options.append=true
-log4j.appender.options.layout=org.apache.log4j.PatternLayout
-log4j.appender.options.layout.ConversionPattern=[%d{ISO8601}] %X{httpStatusCode} %X{contentLength}B %X{durationTime}ms %X{lastModifiedDateTime} [%X{jobName}] %X{url} %X{contentSHA1}%n
+logger.grails_env.name = grails.util.Environment
+logger.grails_env.level = error
+logger.grails_env.additivity = false
+logger.grails_env.appenderRef.stdout.ref = STDOUT
 
-#
-# storage log
-#
-# Logs events for Rundeck storage layer
-#
-log4j.appender.storage=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.storage.file=/var/log/rundeck/rundeck.storage.log
-log4j.appender.storage.append=true
-log4j.appender.storage.layout=org.apache.log4j.PatternLayout
-log4j.appender.storage.layout.ConversionPattern=[%d{ISO8601}] %X{action} %X{type} %X{path} %X{status} %X{metadata}%n
+logger.prjmanager.name = grails.app.services.rundeck.services.ProjectManagerService
+logger.prjmanager.level = info
+logger.prjmanager.additivity = false
+logger.prjmanager.appenderRef.stdout.ref = STDOUT
 
-#
-# job changes log
-#
-# Logs all Job definition changes
-#
-log4j.appender.jobchanges=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.jobchanges.file=/var/log/rundeck/rundeck.jobs.log
-log4j.appender.jobchanges.append=true
-log4j.appender.jobchanges.layout=org.apache.log4j.PatternLayout
-log4j.appender.jobchanges.layout.ConversionPattern=[%d{ISO8601}] %X{user} %X{change} [%X{id}] %X{project} "%X{groupPath}/%X{jobName}" (%X{method})%n
+logger.authorization.name = com.dtolabs.rundeck.core.authorization
+logger.authorization.level = info
+logger.authorization.additivity = false
+logger.authorization.appenderRef.stdout.ref = audit
 
-#
-# executions log
-#
-# Logs all execution events (start,finish,delete)
-#
-log4j.appender.execevents=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.execevents.file=/var/log/rundeck/rundeck.executions.log
-log4j.appender.execevents.append=true
-log4j.appender.execevents.layout=org.apache.log4j.PatternLayout
-log4j.appender.execevents.layout.ConversionPattern=[%d{ISO8601}] %X{eventUser} %X{event} [%X{id}:%X{state}] %X{project} %X{user}/%X{abortedby} "%X{groupPath}/%X{jobName}"[%X{uuid}]%n
+logger.audit_events.name = org.rundeck.plugin.audit.AuditLoggerPlugin
+logger.audit_events.level = info
+logger.audit_events.additivity = false
+logger.audit_events.appenderRef.stdout.ref = audit_events
 
-#
-# api request log
-#
-# Logs all API requests
-#
-log4j.appender.apirequests=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.apirequests.file=/var/log/rundeck/rundeck.api.log
-log4j.appender.apirequests.append=true
-log4j.appender.apirequests.layout=org.apache.log4j.PatternLayout
-log4j.appender.apirequests.layout.ConversionPattern=[%d{ISO8601}] %X{remoteHost} %X{secure} %X{remoteUser} %X{authToken} %X{duration} %X{project} "%X{method} %X{uri}" (%X{userAgent})%n
+logger.options.name = com.dtolabs.rundeck.remoteservice.http.options
+logger.options.level = info
+logger.options.additivity = false
+logger.options.appenderRef.stdout.ref = options
 
-#
-# Web access log
-#
-# Logs all Web requests
-#
-log4j.appender.access=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.access.file=/var/log/rundeck/rundeck.access.log
-log4j.appender.access.append=true
-log4j.appender.access.layout=org.apache.log4j.PatternLayout
-log4j.appender.access.layout.ConversionPattern=[%d{ISO8601}] "%X{method} %X{uri}" %X{remoteHost} %X{secure} %X{remoteUser} %X{authToken} %X{duration} %X{project} [%X{contentType}] (%X{userAgent})%n
+logger.jobchanges.name = com.dtolabs.rundeck.data.jobs.changes
+logger.jobchanges.level = info
+logger.jobchanges.additivity = false
+logger.jobchanges.appenderRef.stdout.ref = jobchanges
+
+
+logger.execevents.name = org.rundeck.execution.status
+logger.execevents.level = info
+logger.execevents.additivity = false
+logger.execevents.appenderRef.stdout.ref = execevents
+
+logger.apirequests.name = org.rundeck.api.requests
+logger.apirequests.level = info
+logger.apirequests.additivity = false
+logger.apirequests.appenderRef.stdout.ref = apirequests
+
+logger.access.name = org.rundeck.web.requests
+logger.access.level = info
+logger.access.additivity = false
+logger.access.appenderRef.access.ref = access
+
+logger.project.name = org.rundeck.project.events
+logger.project.level = info
+logger.project.additivity = false
+logger.project.appenderRef.stdout.ref = project
+
+logger.storage.name = org.rundeck.storage.events
+logger.storage.level = info
+logger.storage.additivity = false
+logger.storage.appenderRef.storage.ref = storage
+
+logger.webhook_events.name = org.rundeck.webhook.events
+logger.webhook_events.level = info
+logger.webhook_events.additivity = false
+logger.webhook_events.appenderRef.webhooks.ref = webhooks
+
+logger.webhook_plugins.name = org.rundeck.plugin.webhook
+logger.webhook_plugins.level = debug
+logger.webhook_plugins.additivity = false
+logger.webhook_plugins.appenderRef.webhooks.ref = webhooks
+
+logger.cleanup.name = rundeck.quartzjobs.ExecutionsCleanUp
+logger.cleanup.level = debug
+logger.cleanup.additivity = false
+logger.cleanup.appenderRef.cleanup.ref = cleanup
+
+logger.jetty.name = org.mortbay.log
+logger.jetty.level = warn
+logger.jetty.additivity = false
+logger.jetty.appenderRef.stdout.ref = STDOUT
+
+logger.hibernate.name = org.hibernate.orm.deprecation
+logger.hibernate.level = error
+logger.hibernate.additivity = false
+logger.hibernate.appenderRef.stdout.ref = STDOUT
+
+logger.rundeck_jaas.name = com.dtolabs.rundeck.jetty.jaas
+logger.rundeck_jaas.level = debug
+logger.rundeck_jaas.additivity = false
+logger.rundeck_jaas.appenderRef.stdout.ref = STDOUT
+
+logger.spring_security.name = grails.plugin.springsecurity.web.authentication.GrailsUsernamePasswordAuthenticationFilter
+logger.spring_security.level = debug
+logger.spring_security.additivity = false
+logger.spring_security.appenderRef.stdout.ref = STDOUT
+
+logger.jaas.name = org.rundeck.jaas
+logger.jaas.level = debug
+logger.jaas.additivity = false
+logger.jaas.appenderRef.stdout.ref = STDOUT
+
+#Quell a noisy WARN from this class
+logger.springBeanPropertyDescriptor.name = org.springframework.beans.GenericTypeAwarePropertyDescriptor
+logger.springBeanPropertyDescriptor.level = error
+logger.springBeanPropertyDescriptor.additivity = false
+logger.springBeanPropertyDescriptor.appenderRef.stdout.ref = STDOUT
+
+# Preauthentication only logs at INFO level
+logger.preauth.name = org.rundeck.security.RundeckPreauthenticationRequestHeaderFilter
+logger.preauth.level = info
+logger.preauth.additivity = false
+logger.preauth.appenderRef.stdout.ref = preauth