정확한 동작을 확인하기 위해서 로깅을 할 필요가 있다.
뿐만 아니라, LogCat으로 보기에는 불편한 점도 많기 때문에 나만의 파일 로깅을 통해서
동작을 명확히 알고 싶은 경우가 많다.
그래서 몇 가지 알아보다가
microlog4android 를 사용해 봤다.
근데 앱을 시작할때마다 파일이 새롭게 작성이 되어서;;;분명히 내가 잘못 설정한 거 같긴
한데 원인 파악하기 귀찮아서 다른 걸로 해봤다.
android log4j 가 내가 원하는 데로 동작함을 확인할 수 있었다.
1) android studio gradle에서 dependency 추가하기
compile 'de.mindpipe.android:android-logging-log4j:1.0.2@jar'
public class ConfigureLog4J { public static void configure() { final LogConfigurator logConfigurator = new LogConfigurator(); logConfigurator.setFileName(Environment.getExternalStorageDirectory() + File.separator + "logfile.log"); logConfigurator.setRootLevel(Level.DEBUG); // Set log level of a specific logger logConfigurator.setLevel("org.apache", Level.ERROR); logConfigurator.configure(); } }
ConfigureLog4J 라는 클래스 생성하고 로깅 하기 원하는 클래스에서
private static final Logger logger = Logger.getLogger(MainActivity.class); static { ConfigureLog4J.configure(); }
와 같이 전역으로 선언하고
logger.info(" 메시지 \n");
와 같이 사용하면 된다.
추가적으로 생성한 로깅 파일을 읽어들이는 코드.
public class LogWatchActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_log_watch); File sdcard = Environment.getExternalStorageDirectory(); File file = new File(scared,"logfile.log"); StringBuilder text = new StringBuilder(); try { BufferedReader br = new BufferedReader(new FileReader(file)); String line; while ((line = br.readLine()) != null) { text.append(line); text.append('\n\n\n'); } br.close(); } catch (IOException e) { } EditText et = (EditText)findViewById(R.id.et); et.setText(text.toString()); } }
EditText 하나 두고 로깅한 파일을 출력해주고 있다.
나는 점점 더 많은 사실 정보를 얻기에 너무 많은 새로운 일이 있기 때문에 독서에 대한 내 기본 블로그로 블로그를 가지고 가야한다.
답글삭제알람 시계 안드로이드 2016 를