On 27 Feb 2016, at 20:40, Prabhu Joseph 
<prabhujose.ga...@gmail.com<mailto:prabhujose.ga...@gmail.com>> wrote:

Hi All,

    When i change the spark log4j.properties conversion pattern to know the 
fully qualified class name, all the logs has the FQCN as 
org.apache.spark.Logging. The actual fully qualified class name is overwritten.

log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %C: 
%m%n



FWIW, my test patter is:

log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c 
(%F:%M(%L)) - %m%n

Gives me things like

2016-02-23 18:54:24,645 [EventPoster] DEBUG 
org.apache.spark.deploy.history.yarn.YarnHistoryService 
(Logging.scala:logDebug(58)) - entity successfully posted
2016-02-23 18:54:24,645 [EventPoster] DEBUG 
org.apache.hadoop.yarn.client.api.impl.FileSystemTimelineWriter 
(FileSystemTimelineWriter.java:flush(286)) - Flushing cache
2016-02-23 18:54:24,646 [EventPoster] DEBUG 
org.apache.spark.deploy.history.yarn.YarnHistoryService 
(Logging.scala:logDebug(58)) - Queue stopped
2016-02-23 18:54:24,646 [EventPoster] DEBUG 
org.apache.spark.deploy.history.yarn.YarnHistoryService 
(Logging.scala:logDebug(58)) - Queue shutdown, time limit= 18:54
2016-02-23 18:54:24,646 [EventPoster] INFO  
org.apache.spark.deploy.history.yarn.YarnHistoryService 
(Logging.scala:logInfo(54)) - Stopping dequeue service, final queue size is 0; 
outstanding events to post count: 0
2016-02-23 18:54:24,646 [EventPoster] DEBUG 
org.apache.hadoop.yarn.client.api.impl.FileSystemTimelineWriter 
(FileSystemTimelineWriter.java:close(276)) - Closing cache
2016-02-23 18:54:24,648 [ScalaTest-main-running-IncompleteApplicationSuite] 
INFO  org.apache.spark.deploy.history.yarn.testtools.YarnTestUtils 
(Logging.scala:logInfo(54)) - awaitServiceThreadStopped

Getting that thread in there is invaluable when there are lots of threads 
about, having the line number in lets you track down where the code is.  Here 
you can see that there was a background thread [EventPoster], alongside the 
test thread itself


As ted points out, this crawls in production, as it creates an exception on 
every log, so that the stack trace can be examined —you would only use it in 
production in an emergency. For test runs though, wonderful.

Reply via email to