public class LogPrinter {

        
        private static Logger logger = new Logger() {
                @Override
                public void print(final String str) {
                        System.out.println(str);
                }

                @Override
                public void print(final Throwable throwable) {
                        throwable.printStackTrace();
                }
        };
//이거는 싱글톤 인스턴스로 기본으로는 콘솔으로 출력하게 되어 있음
        
        private LogPrinter() {
                throw new Asserti();
        }
//싱글톤이라서 생성자 막고
        
        public static void setPrinter(Logger logger) {
                LogPrinter.logger = logger;
        }
//별도로 프린터 설정해서 적용할 수 있게 해놨음. 밑에 Logger 인터페이스 구현해서 설정하면 됨.
        
        public static void print(String str) {
                logger.print(str);
        }
        
        public static void print(Throwable throwable) {
                logger.print(throwable);
        }
//오버로딩으로 문자열이나 예외 들어오면 설정된 Logger로 출력하게 하고
        
        public interface Logger {
                public void print(final String str);
                public void print(final Throwable throwable);
        }
//이거는 Logger 설정하는 인터페이스. 쓰고싶으면 프린트 두개 구현해서 쓰면 됨.
//사용방법은 Logger 설정하고 LogPrinter.print(stringOrThrowable); 이렇게 하면 됨
}
일단 여기까지 구현했는데 수정할 부분 없겠죠?
프로그래밍 한번 안배워본 아마추어라 잘모름..
근데 왜 PC로는 글 안써지지 유저에이전트 바꿔서 썼네