Both your root logger and your named loggers are referring to the same appender. Each active logger will send an event to its appender, so the appender will receive the event multiple times, once for each logger. (The root logger will get all events, the named loggers will only get the events emitted by the Logger in your code with a matching name.)
This is called Additivity. See http://logging.apache.org/log4j/2.x/manual/configuration.html#Additivity
You can set additivity="false" in the named logger config.