Java에서 사용하는 System.out  class의 print 함수들이나 Android의 Log class는 static으로 이루어져 있기 때문에 사용량이 많을수록 성능에 지장을 많이 준다. 

이렇게 불필요한 Log들에 의한 성능저하 유발을 방지하기 위해서 몇가지 방법이 있는데
첫번째는, Log를 찍는 곳에 if()의 결과에 따라서 로그를 찍느냐 마느냐를 결정하는 것이다.
그런데 이게 일일이 if()으로 검사하기에는 너무나 귀찮다. 그래서 일괄적으로 할 수 있는 class를 만들어서 사용하면 성능저하도 개선하고 편리성도 찾을 수 있다. 단, 이것 또한
단점이  존재하는데 재빌드를 해야 한다는것이다. 하지만 단점보다는 장점이 더 크니까 해볼만 하다.

package com.infraware.util;


import android.util.Log;


public class Logger {

private static final boolean enabled = true;

private static String createMessage(String filter, String methodName, String message){

StringBuffer msgBuf = new StringBuffer();

msgBuf.append("[");

msgBuf.append(filter);

msgBuf.append("][");

msgBuf.append(methodName);

msgBuf.append("] ");

msgBuf.append(message);

return msgBuf.toString();

}

public static void error(String fileName, String filter, String methodName, String message){

if(enabled){

Log.e(fileName + ".java", createMessage(filter, methodName, message));

}

}

public static void debug(String fileName,  String filter, String methodName, String message){

if(enabled){

Log.d(fileName + ".java", createMessage(filter, methodName, message));

}

}

public static void info(String fileName,  String filter, String methodName, String message){

if(enabled){

Log.i(fileName + ".java", createMessage(filter, methodName, message));

}

}

public static void verbose(String fileName,  String filter, String methodName, String message){

if(enabled){

Log.v(fileName + ".java", createMessage(filter, methodName, message));

}

}

public static void warning(String fileName,  String filter, String methodName, String message){

if(enabled){

Log.w(fileName + ".java", createMessage(filter, methodName, message));

}

}

}

 
이제 내 프로젝트에서 이렇게 사용해봐야 겠다... ㅠㅠ
KWAC Project에 들어간 불필요한 log들을 좀 다 제거하고 싶은데 쉽지 않네... ㅠㅠ 

WRITTEN BY
정현석
이것저것 끄적끄적....

,