Issue Type: Bug Bug
Affects Versions: 1.1.3
Assignee: Logback dev list
Components: logback-core
Created: 27/Oct/15 8:12 AM
Description:

Using this onfiguration file:

logback.xml
<configuration debug="true" scan="true" scanPeriod="5 seconds">
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} %boldBlue(%-5level) [%yellow(%thread)] %logger{36}\(%blue(%M):%blue(%L)\) - %green(%msg%n)</pattern>
    </encoder>
  </appender>


  <root level="INFO">
    <appender-ref ref="CONSOLE"/>
  </root>
</configuration>

The following exception is thrown:

08:53:23,848 |-ERROR in ch.qos.logback.classic.PatternLayout("%d{HH:mm:ss.SSS} %boldBlue(%-5level) [%yellow(%thread)] %logger{36} \(%blue(%M):%blue(%L)\) - %green(%msg%n)") - Failed to parse pattern "%d{HH:mm:ss.SSS} %boldBlue(%-5level) [%yellow(%thread)] %logger{36} \(%blue(%M):%blue(%L)\) - %green(%msg%n)". ch.qos.logback.core.spi.ScanException: Failed to initialize Parser
	at ch.qos.logback.core.spi.ScanException: Failed to initialize Parser
	at 	at ch.qos.logback.core.pattern.parser.Parser.<init>(Parser.java:74)
	at 	at ch.qos.logback.core.pattern.parser.Parser.<init>(Parser.java:66)
	at 	at ch.qos.logback.core.pattern.PatternLayoutBase.start(PatternLayoutBase.java:81)
	at 	at ch.qos.logback.classic.encoder.PatternLayoutEncoder.start(PatternLayoutEncoder.java:28)
	at 	at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:167)
	at 	at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:317)
	at 	at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:196)
	at 	at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:182)
	at 	at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:149)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:135)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:99)
	at 	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:49)
	at 	at ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.performXMLConfiguration(ReconfigureOnChangeFilter.java:216)
	at 	at ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter$ReconfiguringThread.run(ReconfigureOnChangeFilter.java:194)
	at 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at 	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Illegal char ') at column 91. Only \\, \_, \%, \{, \}, \t, \n, \r combinations are allowed as escape characters.
	at 	at ch.qos.logback.core.pattern.util.RegularEscapeUtil.escape(RegularEscapeUtil.java:46)
	at 	at ch.qos.logback.core.pattern.parser.TokenStream.escape(TokenStream.java:217)
	at 	at ch.qos.logback.core.pattern.parser.TokenStream.handleRightParenthesisState(TokenStream.java:133)
	at 	at ch.qos.logback.core.pattern.parser.TokenStream.tokenize(TokenStream.java:97)
	at 	at ch.qos.logback.core.pattern.parser.Parser.<init>(Parser.java:72)
	at 	... 19 common frames omitted

It seems to me that coloring cannot be performed within an escaped parenthesis block...

Environment:

Win7 64bits, JDK 1.8.0_u60

Project: logback
Priority: Major Major
Reporter: L.Viegas
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira