Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
ed7de8eb
Commit
ed7de8eb
authored
Oct 26, 2016
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish contribution
Also add rotate attribute to Undertow Closes gh-7225
parent
1d95219c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
63 additions
and
27 deletions
+63
-27
ServerProperties.java
...ingframework/boot/autoconfigure/web/ServerProperties.java
+30
-24
ServerPropertiesTests.java
...amework/boot/autoconfigure/web/ServerPropertiesTests.java
+24
-2
appendix-application-properties.adoc
...cs/src/main/asciidoc/appendix-application-properties.adoc
+2
-0
UndertowEmbeddedServletContainerFactory.java
...ded/undertow/UndertowEmbeddedServletContainerFactory.java
+7
-1
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerProperties.java
View file @
ed7de8eb
...
@@ -956,7 +956,7 @@ public class ServerProperties
...
@@ -956,7 +956,7 @@ public class ServerProperties
valve
.
setPrefix
(
this
.
accesslog
.
getPrefix
());
valve
.
setPrefix
(
this
.
accesslog
.
getPrefix
());
valve
.
setSuffix
(
this
.
accesslog
.
getSuffix
());
valve
.
setSuffix
(
this
.
accesslog
.
getSuffix
());
valve
.
setRenameOnRotate
(
this
.
accesslog
.
isRenameOnRotate
());
valve
.
setRenameOnRotate
(
this
.
accesslog
.
isRenameOnRotate
());
valve
.
setRotatable
(
this
.
accesslog
.
isRotat
abl
e
());
valve
.
setRotatable
(
this
.
accesslog
.
isRotate
());
factory
.
addEngineValves
(
valve
);
factory
.
addEngineValves
(
valve
);
}
}
...
@@ -1002,14 +1002,14 @@ public class ServerProperties
...
@@ -1002,14 +1002,14 @@ public class ServerProperties
private
String
suffix
=
".log"
;
private
String
suffix
=
".log"
;
/**
/**
*
Defer inclusion of the date stamp in the file name until rotate time
.
*
Enable access log rotation
.
*/
*/
private
boolean
r
enameOnRotat
e
;
private
boolean
r
otate
=
tru
e
;
/**
/**
*
Enable access log rotation
.
*
Defer inclusion of the date stamp in the file name until rotate time
.
*/
*/
private
boolean
r
otatable
=
tru
e
;
private
boolean
r
enameOnRotat
e
;
public
boolean
isEnabled
()
{
public
boolean
isEnabled
()
{
return
this
.
enabled
;
return
this
.
enabled
;
...
@@ -1051,6 +1051,14 @@ public class ServerProperties
...
@@ -1051,6 +1051,14 @@ public class ServerProperties
this
.
suffix
=
suffix
;
this
.
suffix
=
suffix
;
}
}
public
boolean
isRotate
()
{
return
this
.
rotate
;
}
public
void
setRotate
(
boolean
rotate
)
{
this
.
rotate
=
rotate
;
}
public
boolean
isRenameOnRotate
()
{
public
boolean
isRenameOnRotate
()
{
return
this
.
renameOnRotate
;
return
this
.
renameOnRotate
;
}
}
...
@@ -1059,13 +1067,6 @@ public class ServerProperties
...
@@ -1059,13 +1067,6 @@ public class ServerProperties
this
.
renameOnRotate
=
renameOnRotate
;
this
.
renameOnRotate
=
renameOnRotate
;
}
}
public
boolean
isRotatable
()
{
return
this
.
rotatable
;
}
public
void
setRotatable
(
boolean
rotatable
)
{
this
.
rotatable
=
rotatable
;
}
}
}
}
}
...
@@ -1309,21 +1310,14 @@ public class ServerProperties
...
@@ -1309,21 +1310,14 @@ public class ServerProperties
if
(
this
.
directBuffers
!=
null
)
{
if
(
this
.
directBuffers
!=
null
)
{
factory
.
setDirectBuffers
(
this
.
directBuffers
);
factory
.
setDirectBuffers
(
this
.
directBuffers
);
}
}
if
(
this
.
accesslog
.
dir
!=
null
)
{
factory
.
setAccessLogDirectory
(
this
.
accesslog
.
dir
);
}
if
(
this
.
accesslog
.
pattern
!=
null
)
{
factory
.
setAccessLogPattern
(
this
.
accesslog
.
pattern
);
}
if
(
this
.
accesslog
.
prefix
!=
null
)
{
factory
.
setAccessLogPrefix
(
this
.
accesslog
.
prefix
);
}
if
(
this
.
accesslog
.
suffix
!=
null
)
{
factory
.
setAccessLogSuffix
(
this
.
accesslog
.
suffix
);
}
if
(
this
.
accesslog
.
enabled
!=
null
)
{
if
(
this
.
accesslog
.
enabled
!=
null
)
{
factory
.
setAccessLogEnabled
(
this
.
accesslog
.
enabled
);
factory
.
setAccessLogEnabled
(
this
.
accesslog
.
enabled
);
}
}
factory
.
setAccessLogDirectory
(
this
.
accesslog
.
dir
);
factory
.
setAccessLogPattern
(
this
.
accesslog
.
pattern
);
factory
.
setAccessLogPrefix
(
this
.
accesslog
.
prefix
);
factory
.
setAccessLogSuffix
(
this
.
accesslog
.
suffix
);
factory
.
setAccessLogRotate
(
this
.
accesslog
.
rotate
);
factory
.
setUseForwardHeaders
(
serverProperties
.
getOrDeduceUseForwardHeaders
());
factory
.
setUseForwardHeaders
(
serverProperties
.
getOrDeduceUseForwardHeaders
());
if
(
serverProperties
.
getMaxHttpHeaderSize
()
>
0
)
{
if
(
serverProperties
.
getMaxHttpHeaderSize
()
>
0
)
{
customizeMaxHttpHeaderSize
(
factory
,
customizeMaxHttpHeaderSize
(
factory
,
...
@@ -1406,6 +1400,11 @@ public class ServerProperties
...
@@ -1406,6 +1400,11 @@ public class ServerProperties
*/
*/
private
File
dir
=
new
File
(
"logs"
);
private
File
dir
=
new
File
(
"logs"
);
/**
* Enable access log rotation.
*/
private
boolean
rotate
=
true
;
public
Boolean
getEnabled
()
{
public
Boolean
getEnabled
()
{
return
this
.
enabled
;
return
this
.
enabled
;
}
}
...
@@ -1446,6 +1445,13 @@ public class ServerProperties
...
@@ -1446,6 +1445,13 @@ public class ServerProperties
this
.
dir
=
dir
;
this
.
dir
=
dir
;
}
}
public
boolean
isRotate
()
{
return
this
.
rotate
;
}
public
void
setRotate
(
boolean
rotate
)
{
this
.
rotate
=
rotate
;
}
}
}
}
}
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/ServerPropertiesTests.java
View file @
ed7de8eb
...
@@ -137,8 +137,8 @@ public class ServerPropertiesTests {
...
@@ -137,8 +137,8 @@ public class ServerPropertiesTests {
Map
<
String
,
String
>
map
=
new
HashMap
<
String
,
String
>();
Map
<
String
,
String
>
map
=
new
HashMap
<
String
,
String
>();
map
.
put
(
"server.tomcat.accesslog.pattern"
,
"%h %t '%r' %s %b"
);
map
.
put
(
"server.tomcat.accesslog.pattern"
,
"%h %t '%r' %s %b"
);
map
.
put
(
"server.tomcat.accesslog.prefix"
,
"foo"
);
map
.
put
(
"server.tomcat.accesslog.prefix"
,
"foo"
);
map
.
put
(
"server.tomcat.accesslog.rotate"
,
"false"
);
map
.
put
(
"server.tomcat.accesslog.rename-on-rotate"
,
"true"
);
map
.
put
(
"server.tomcat.accesslog.rename-on-rotate"
,
"true"
);
map
.
put
(
"server.tomcat.accesslog.rotatable"
,
"false"
);
map
.
put
(
"server.tomcat.accesslog.suffix"
,
"-bar.log"
);
map
.
put
(
"server.tomcat.accesslog.suffix"
,
"-bar.log"
);
map
.
put
(
"server.tomcat.protocol_header"
,
"X-Forwarded-Protocol"
);
map
.
put
(
"server.tomcat.protocol_header"
,
"X-Forwarded-Protocol"
);
map
.
put
(
"server.tomcat.remote_ip_header"
,
"Remote-Ip"
);
map
.
put
(
"server.tomcat.remote_ip_header"
,
"Remote-Ip"
);
...
@@ -148,8 +148,8 @@ public class ServerPropertiesTests {
...
@@ -148,8 +148,8 @@ public class ServerPropertiesTests {
ServerProperties
.
Tomcat
tomcat
=
this
.
properties
.
getTomcat
();
ServerProperties
.
Tomcat
tomcat
=
this
.
properties
.
getTomcat
();
assertThat
(
tomcat
.
getAccesslog
().
getPattern
()).
isEqualTo
(
"%h %t '%r' %s %b"
);
assertThat
(
tomcat
.
getAccesslog
().
getPattern
()).
isEqualTo
(
"%h %t '%r' %s %b"
);
assertThat
(
tomcat
.
getAccesslog
().
getPrefix
()).
isEqualTo
(
"foo"
);
assertThat
(
tomcat
.
getAccesslog
().
getPrefix
()).
isEqualTo
(
"foo"
);
assertThat
(
tomcat
.
getAccesslog
().
isRotate
()).
isFalse
();
assertThat
(
tomcat
.
getAccesslog
().
isRenameOnRotate
()).
isTrue
();
assertThat
(
tomcat
.
getAccesslog
().
isRenameOnRotate
()).
isTrue
();
assertThat
(
tomcat
.
getAccesslog
().
isRotatable
()).
isFalse
();
assertThat
(
tomcat
.
getAccesslog
().
getSuffix
()).
isEqualTo
(
"-bar.log"
);
assertThat
(
tomcat
.
getAccesslog
().
getSuffix
()).
isEqualTo
(
"-bar.log"
);
assertThat
(
tomcat
.
getRemoteIpHeader
()).
isEqualTo
(
"Remote-Ip"
);
assertThat
(
tomcat
.
getRemoteIpHeader
()).
isEqualTo
(
"Remote-Ip"
);
assertThat
(
tomcat
.
getProtocolHeader
()).
isEqualTo
(
"X-Forwarded-Protocol"
);
assertThat
(
tomcat
.
getProtocolHeader
()).
isEqualTo
(
"X-Forwarded-Protocol"
);
...
@@ -466,6 +466,28 @@ public class ServerPropertiesTests {
...
@@ -466,6 +466,28 @@ public class ServerPropertiesTests {
.
getProtocolHandler
()).
getMaxConnections
()).
isEqualTo
(
5
);
.
getProtocolHandler
()).
getMaxConnections
()).
isEqualTo
(
5
);
}
}
@Test
public
void
customizeUndertowAccessLog
()
{
Map
<
String
,
String
>
map
=
new
HashMap
<
String
,
String
>();
map
.
put
(
"server.undertow.accesslog.enabled"
,
"true"
);
map
.
put
(
"server.undertow.accesslog.pattern"
,
"foo"
);
map
.
put
(
"server.undertow.accesslog.prefix"
,
"test_log"
);
map
.
put
(
"server.undertow.accesslog.suffix"
,
"txt"
);
map
.
put
(
"server.undertow.accesslog.dir"
,
"test-logs"
);
map
.
put
(
"server.undertow.accesslog.rotate"
,
"false"
);
bindProperties
(
map
);
UndertowEmbeddedServletContainerFactory
container
=
spy
(
new
UndertowEmbeddedServletContainerFactory
());
this
.
properties
.
getUndertow
().
customizeUndertow
(
this
.
properties
,
container
);
verify
(
container
).
setAccessLogEnabled
(
true
);
verify
(
container
).
setAccessLogPattern
(
"foo"
);
verify
(
container
).
setAccessLogPrefix
(
"test_log"
);
verify
(
container
).
setAccessLogSuffix
(
"txt"
);
verify
(
container
).
setAccessLogDirectory
(
new
File
(
"test-logs"
));
verify
(
container
).
setAccessLogRotate
(
false
);
}
@Test
@Test
public
void
defaultUseForwardHeadersUndertow
()
throws
Exception
{
public
void
defaultUseForwardHeadersUndertow
()
throws
Exception
{
UndertowEmbeddedServletContainerFactory
container
=
spy
(
UndertowEmbeddedServletContainerFactory
container
=
spy
(
...
...
spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc
View file @
ed7de8eb
...
@@ -199,6 +199,7 @@ content into your application; rather pick only the properties that you need.
...
@@ -199,6 +199,7 @@ content into your application; rather pick only the properties that you need.
server.tomcat.accesslog.pattern=common # Format pattern for access logs.
server.tomcat.accesslog.pattern=common # Format pattern for access logs.
server.tomcat.accesslog.prefix=access_log # Log file name prefix.
server.tomcat.accesslog.prefix=access_log # Log file name prefix.
server.tomcat.accesslog.rename-on-rotate=false # Defer inclusion of the date stamp in the file name until rotate time.
server.tomcat.accesslog.rename-on-rotate=false # Defer inclusion of the date stamp in the file name until rotate time.
server.tomcat.accesslog.rotate=true # Enable access log rotation.
server.tomcat.accesslog.suffix=.log # Log file name suffix.
server.tomcat.accesslog.suffix=.log # Log file name suffix.
server.tomcat.background-processor-delay=30 # Delay in seconds between the invocation of backgroundProcess methods.
server.tomcat.background-processor-delay=30 # Delay in seconds between the invocation of backgroundProcess methods.
server.tomcat.basedir= # Tomcat base directory. If not specified a temporary directory will be used.
server.tomcat.basedir= # Tomcat base directory. If not specified a temporary directory will be used.
...
@@ -222,6 +223,7 @@ content into your application; rather pick only the properties that you need.
...
@@ -222,6 +223,7 @@ content into your application; rather pick only the properties that you need.
server.undertow.accesslog.enabled=false # Enable access log.
server.undertow.accesslog.enabled=false # Enable access log.
server.undertow.accesslog.pattern=common # Format pattern for access logs.
server.undertow.accesslog.pattern=common # Format pattern for access logs.
server.undertow.accesslog.prefix=access_log. # Log file name prefix.
server.undertow.accesslog.prefix=access_log. # Log file name prefix.
server.undertow.accesslog.rotate=true # Enable access log rotation.
server.undertow.accesslog.suffix=log # Log file name suffix.
server.undertow.accesslog.suffix=log # Log file name suffix.
server.undertow.buffer-size= # Size of each buffer in bytes.
server.undertow.buffer-size= # Size of each buffer in bytes.
server.undertow.buffers-per-region= # Number of buffer per region.
server.undertow.buffers-per-region= # Number of buffer per region.
...
...
spring-boot/src/main/java/org/springframework/boot/context/embedded/undertow/UndertowEmbeddedServletContainerFactory.java
View file @
ed7de8eb
...
@@ -126,6 +126,8 @@ public class UndertowEmbeddedServletContainerFactory
...
@@ -126,6 +126,8 @@ public class UndertowEmbeddedServletContainerFactory
private
boolean
accessLogEnabled
=
false
;
private
boolean
accessLogEnabled
=
false
;
private
boolean
accessLogRotate
=
true
;
private
boolean
useForwardHeaders
;
private
boolean
useForwardHeaders
;
/**
/**
...
@@ -411,7 +413,7 @@ public class UndertowEmbeddedServletContainerFactory
...
@@ -411,7 +413,7 @@ public class UndertowEmbeddedServletContainerFactory
:
"access_log."
);
:
"access_log."
);
AccessLogReceiver
accessLogReceiver
=
new
DefaultAccessLogReceiver
(
AccessLogReceiver
accessLogReceiver
=
new
DefaultAccessLogReceiver
(
createWorker
(),
this
.
accessLogDirectory
,
prefix
,
createWorker
(),
this
.
accessLogDirectory
,
prefix
,
this
.
accessLogSuffix
);
this
.
accessLogSuffix
,
this
.
accessLogRotate
);
String
formatString
=
(
this
.
accessLogPattern
!=
null
)
?
this
.
accessLogPattern
String
formatString
=
(
this
.
accessLogPattern
!=
null
)
?
this
.
accessLogPattern
:
"common"
;
:
"common"
;
return
new
AccessLogHandler
(
handler
,
accessLogReceiver
,
formatString
,
return
new
AccessLogHandler
(
handler
,
accessLogReceiver
,
formatString
,
...
@@ -584,6 +586,10 @@ public class UndertowEmbeddedServletContainerFactory
...
@@ -584,6 +586,10 @@ public class UndertowEmbeddedServletContainerFactory
return
this
.
accessLogEnabled
;
return
this
.
accessLogEnabled
;
}
}
public
void
setAccessLogRotate
(
boolean
accessLogRotate
)
{
this
.
accessLogRotate
=
accessLogRotate
;
}
protected
final
boolean
isUseForwardHeaders
()
{
protected
final
boolean
isUseForwardHeaders
()
{
return
this
.
useForwardHeaders
;
return
this
.
useForwardHeaders
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment