공통코드 오류 수정 및 팝업 이동

This commit is contained in:
hehihoho3@gmail.com 2025-08-05 14:33:25 +09:00
parent cb33d99982
commit f4f6db3b7e
4 changed files with 82 additions and 26 deletions

View File

@ -15,12 +15,11 @@ server.servlet.session.timeout=120m
logging.level.root=INFO
# MyBatis SQL ?? ???
logging.level.org.mybatis=info
logging.level.jdbc.sqlonly=info
logging.level.jdbc.sqlonly=off
logging.level.jdbc.sqltiming=info
logging.level.jdbc.audit=info
logging.level.jdbc.resultset=info
logging.level.jdbc.resultsettable=info
logging.level.jdbc.audit=off
logging.level.jdbc.resultset=off
logging.level.jdbc.resultsettable=off
# thymeleaf
spring.thymeleaf.prefix=classpath:templates/

View File

@ -1,32 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
[Layout]
%m : 로그내용이 출력
%p : trace > debug > info > warn > error 등의 priority 출력
%r : 어플리케이션이 시작되어 로깅이벤트가 발생하는 시점까지의 경과시간을 밀리세컨드로 출력
%c : 예) 카테고리가 a.b.c 처럼 되어있다면 %c{2}는 b.c가 출력됩니다.
%n : 플랫폼 종속적인 개행문자가 출력된다. \r\n 또는 \n 일것이다
%d : 로깅이벤트가 일어나 날짜 출력 ( 프로그램의 실행속도를 느리게 한다.)
예) %d{HH:mm:ss} 또는 %d{dd MMMM yyyy HH:mm:ss}
%C : 호출자의 클래스명 출력
예) 클래스구조가 org.apache.xyz.SomeClass 처럼 되어있다면 %C{2}는 xyz.SomeClass 가 출력됩니다
%M : 로깅이 발생한 method 이름을 나타냅니다.
%F : 로깅이 발생한 프로그램 파일명을 나타냅니다.
%l : 로깅이 발생한 caller의 정보를 나타냅니다
%L : 로깅이 발생한 caller의 라인수를 나타냅니다
%x : 로깅이 발생한 thread와 관련된 NDC(nested diagnostic context)를 출력합니다.
%X : 로깅이 발생한 thread와 관련된 MDC(mapped diagnostic context)를 출력합니다.
%% : % 표시를 출력하기 위해 사용한다.
%t : 로그이벤트가 발생된 쓰레드의 이름을 출력합니다
-->
<configuration scan="true" scanPeriod="30 seconds">
<!-- &lt;!&ndash;springProfile 태그를 사용하면 logback 설정파일에서 복수개의 프로파일을 설정할 수 있다.&ndash;&gt;-->
<!-- <springProfile name="dev">-->
<!-- <property resource="logback-dev.properties"/>-->
<!-- </springProfile>-->
<!-- <springProfile name="prod">-->
<!-- <property resource="logback-prod.properties"/>-->
<!-- </springProfile>-->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<!-- 간결화된 로그 패턴 -->
<property name="LOG_PATTERN" value="[%d{yyyy-MM-dd HH:mm:ss}] %highlight(%-5level) %green([%thread]) - %msg%n%ex"/>
<property name="LOG_PATTERN" value="%clr(%d{yyMMdd HH:mm:ss}){green} %clr([%-5level]){cyan} [%thread] %clr([%logger{1}:%line]){magenta} - %msg%n"/>
<property name="LOG_DIR" value="${log.config.path}"/>
<property name="ERR_LOG_FILE_NAME" value="err_log"/>
<property name="ERR_LOG_FILE_NAME" value="err_log"/><!-- err log file name -->
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOG_DIR}/logback-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${LOG_PATTERN}</pattern>
</layout>
</appender>
<!-- 에러의 경우 파일에 로그 처리 -->
<appender name="Error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
@ -35,25 +67,40 @@
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- Rolling 정책 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
<fileNamePattern>${LOG_DIR}/${ERR_LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 파일당 최고 용량 kb, mb, gb -->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 일자별 로그파일 최대 보관주기(~일), 해당 설정일 이상된 파일은 자동으로 제거-->
<maxHistory>60</maxHistory>
</rollingPolicy>
</appender>
<!-- log4jdbc 로거 설정 -->
<logger name="jdbc" level="OFF"/>
<logger name="jdbc.sqlonly" level="OFF"/>
<logger name="jdbc.sqltiming" level="INFO"/>
<logger name="jdbc.audit" level="OFF"/>
<logger name="jdbc.resultset" level="OFF"/>
<logger name="jdbc.resultsettable" level="INFO"/>
<logger name="jdbc.connection" level="OFF"/>
<!-- Loggers -->
<!-- <logger name="org.apache.catalina" level="ERROR">
</logger>
<!-- MyBatis SQL 로그 레벨 조정 -->
<logger name="org.mybatis.spring" level="INFO" />
<logger name="egovframework.sqlmappers" level="INFO" />
<logger name="org.apache.commons" level="ERROR">
</logger>
<logger name="org.springframework" level="DEBUG" >
</logger>
<logger name="egovframework.*" level="DEBUG">
</logger>
<logger name="java.sql" level="DEBUG">
</logger>
<logger name="org.mybatis.spring" level="DEBUG">
</logger>
<logger name="egovframework.sqlmappers" level="TRACE">
</logger> -->
<root level="INFO">
<appender-ref ref="ROLLING"/>

View File

@ -30,8 +30,9 @@
sort_order = #{sortOrder},
use_yn = #{useYn},
last_updusr_id = #{lastUpdusrId},
last_updt_pnttm = #{lastUpdtPnttm}
last_updt_pnttm = now()
WHERE code_id = #{codeId}
and code_group_id = #{codeGroupId}
</update>
<!-- 코드 상세를 삭제하는 쿼리 -->

View File

@ -303,6 +303,13 @@
<script>
$(document).ready(function() {
// modal drag
$(document).on('show.bs.modal', '.modal', function () {
$(this).find('.modal-dialog').draggable({
handle: ".modal-header"
});
});
// 페이지 로드 시 코드 데이터를 가져오는 AJAX 호출
loadCodes();
@ -388,6 +395,8 @@
formData[field.name] = field.value;
});
// console.log('JSON.stringify(formData) : ', JSON.stringify(formData));
$.ajax({
url: '/api/codes/' + formData.codeGroupId,
type: 'PUT',