2014-10-17 2 views
0

У меня есть Spring MVC ...Как записать исключения в файл журнала ...?

После загрузки сервлетов диспетчера я получаю исключение. Мне нужно написать это исключение в файл журнала ...

Я получаю ошибку ... Соединение TCP/IP с хостом 192.168.100.178, порт 1433 сработало. Ошибка: «время ожидания подключения». Проверьте свойства подключения. Убедитесь, что экземпляр SQL Server запущен на хосте и принимает соединения TCP/IP в порту. Убедитесь, что TCP-соединения с портом не заблокированы брандмауэром. "

Я не мог писать в лог-файл ...

Может кто-нибудь помочь? Спасибо

ответ

0

Вы можете создать собственное собственное исключение, которое вызывается после того, как вы поймаете все исключения TCP/IP-соединения. Как только ваше настраиваемое исключение выбрано, вы можете просто записывать журналы в указанный вами файл.

0

Вы можете использовать Log4j

Here хороший учебник, чтобы следовать

0

Log4j 2 Конфигурация:

<?xml version="1.0" encoding="UTF-8"?> 

<!-- No need to set system property "Log4jContextSelector" to any value 
when using <asyncLogger> or <asyncRoot>. --> 

<Configuration status="WARN"> 
    <Appenders> 
    <!-- Async Loggers will auto-flush in batches, so switch off immediateFlush. --> 
     <RandomAccessFile name="RandomAccessFile" fileName="asyncWithLocation.log" 
      immediateFlush="false" append="false"> 
      <PatternLayout> 
       <Pattern>%d %p %class{1.} [%t] %location %m %ex%n</Pattern> 
      </PatternLayout> 
     </RandomAccessFile> 
    </Appenders> 
    <Loggers> 
    <!-- pattern layout actually uses location, so we need to include it --> 
     <AsyncLogger name="com.foo.Bar" level="trace" includeLocation="true"> 
      <AppenderRef ref="RandomAccessFile"/> 
     </AsyncLogger> 
     <Root level="info" includeLocation="true"> 
      <AppenderRef ref="RandomAccessFile"/> 
     </Root> 
    </Loggers> 
</Configuration> 

Выше конфигурации взяты из Mixing Synchronous and Asynchronous Loggers

Вы можете добавить Exception я n файл журнала as: -

Logger logger = LogManager.getLogger(Your_Class_Name.class); 
try { 
    // do something 
} catch (Exception e) { 
    StringWriter stack = new StringWriter(); 
    e.printStackTrace(new PrintWriter(stack)); 
    logger.fatal(stack.toString()); 
}; 
Смежные вопросы