Log4j Максимальная длина строки ИЛИ Ошибка объединения строк Java? - PullRequest
1 голос
/ 24 января 2010

При работе в Solaris 10 у меня возникают проблемы, когда я нажимаю на оператор LOG.debug с помощью регистратора Apache Log4j. Основной сценарий демонстрируется в следующем блоке кода:

public class MyClass {
   private static final Logger LOG = Logger.getLogger(MyClass.class.getName());
   private LinkedHashMap<String, String> myMap = 
         new LinkedHashMap<String, String>();

   public static void main(String[] args) {

      // A really long String, but certainly not exceeding 2^31 - 1 characters 
      //long
      String reallyLongString = "A really, really, really...long String";
      String key = "keyToReallyLongString";

      // When this line is executed, Solaris instantly and completely logs me off 
      // of the system
      LOG.debug("Adding to myMap[" + key + "]: " + reallyLongString);
   }
}

Есть мысли?

1 Ответ

1 голос
/ 24 января 2010

Если у вас есть какие-либо ограничения процесса, вы можете столкнуться с ними. Выполнив эту конкатенацию строк, вы будете использовать как минимум (reallyLongString.length() + key.length()) * 2 байт. Если этого достаточно, чтобы вывести вас за пределы ...

...