В моем приложении я использую log4j
и у меня есть my_system.log
, куда должны быть брошены все сообщения. У меня проблема в том, что когда происходит ошибка, она также появляется в server.log
(я не хочу, чтобы это произошло).
public String getAccessFlag (String userId, String participantCode, String roleId) {
HashMap parmMap = new HashMap();
parmMap.put("userId", userId.toUpperCase());
parmMap.put("roleId", roleId);
log.info(parmMap);
try {
getSqlMapClientOltp().queryForList("auth.getAccess", parmMap);
} catch (SQLException ex) {
log.error(ex, ex);
throw new RuntimeException (ex);
}
List result = (List)parmMap.get("Result0");
return ((String)(((HashMap) result.get(0)).get("accessVoucher"))).trim();
}
Как видите, я перехватываю исключения, потому что хочу зарегистрировать его в my_system.log
, но, поскольку я хочу остановить выполнение (так как ошибка произошла), я снова выдаю ошибку.
Я верю, потому что я его выкидываю, он показывается в server.log.
Как мне избежать этого?
UPDATE:
Ниже приведены мои приложения:
<appender name="myAppender" class="org.apache.log4j.AsyncAppender">
<appender-ref ref="myFile" />
</appender>
<appender name="myFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="../systems/my/log/my_system.log" />
<param name="Append" value="true" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{dd/MMM/yyyy:HH:mm:ss.SSS}]~[%-5p]~[%c:%M]~[%m]%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="TRACE#com.org.common.logging.HUDLogLevel" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>