[Java/Android] try – catch 사용시에 Exception 안드로이드 Log로 출력하기

[code]public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

String nullValue = null;

try
{
nullValue.equals(“must be exception”);
}
catch(Exception e)
{
e.printStackTrace();
}

}[/code]
위의 같은 예제가 있다고 가정을 해봅시다. 위의 try – catch문은 이클립스에서 자동완성을 하여 자동으로 붙은 코드입니다. 위의 경우에는 기존의 Java어플리케이션에서는 문제가 없지만 안드로이드에서는 다음과 같은 문제가 있습니다.
사용자 삽입 이미지사실 이렇게 보니 또 문제가 없어보이네요. 아무튼 각설하고 왼쪽의 System.err를 보시면 안드로이드 고유의 Log를 사용하지 않고 에러가 출력되어 내가 의도한 로그의 Tag정보가 없는것이 현실입니다.

안드로이드에서 사용할 수 있는 형태로 로그를 출력하기 위해서는 다음과 같은 방법을 사용하시면 됩니다. 비슷한 예로 출력할 에러를 문자열 변수로 받고자 할때도 쓸 수 있습니다.
[code]try
{
nullValue.equals(“must be exception”);
}
catch(Exception e)
{
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));
String exceptionAsStrting = sw.toString();

Log.e(“StackTraceExampleActivity”, exceptionAsStrting);
}[/code]
사용자 삽입 이미지이제 위와같이 에러가 출력이 됩니다. 물론 이클립스 ADT플러그인에서 설정을 일부러 끄신게 아니라면 로그를 더블클릭하여 에러 위치로 이동하는것 역시 가능합니다.

1346383891.zip
참고: http://stackoverflow.com/questions/1149703/stacktrace-to-string-in-java

[Linux] 아파치(Apache) 웹서버 동시접속자수 알아내기

사용자 삽입 이미지
리눅스에서 현재 시간의 동시접속자수를 알아내는 방법은 여러가지 방법이 있는것 같습니다. 하지만 많은 분들이 netstat 명령을 사용하여 동시접속자수를 알아내시는것 같은데요, 제가 사용하는 방식을 기억용으로 정리해 두도록 하겠습니다.

현재 접속 커넥션 수 알아내기

이 명령을 실제로 연결되어있는 커넥션 수를 알아내기에 적합합니다. 서버상에서 실제로 처리해야 하는 수를 의미합니다.
[code]netstat -an | grep :80.*ESTABLISHED | wc -l[/code]

현재 접속 사용자(머신/디바이스) 수 알아내기

이 명령은 현재 동시 접속중인 사용자수를 알아내기에 적합합니다. 하나의 사용자가 동시에 여러개의 커넥션을 사용할 수 있는데 이것을 하나로 처리를 합니다.
[code]netstat -an | grep :80.*ESTABLISHED | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq | wc -l[/code]