I think maybe this should just be a synchronized ArrayList since it is seldom updated and never referenced.  ArrayLists are as compact as possible without going fully to copy-on-write arrays (which are the most compact option, but have other problems).  CHM are really bulky in some JDKs.  You don't have to worry about duplicates because the logger will persist for as long as the reference lasts.