'프로그래밍'에 해당되는 글 45건

  1. 2024.12.05 Lognote - Log viewer, Android logcat viewer for Windows, Linux, Mac 3
  2. 2024.12.05 Lognote - 스크린 캡쳐 쉽게 하기
  3. 2024.10.22 Lognote - 특정 패키지 로그만 출력하기(1.0 ~)
  4. 2024.10.14 ubuntu 실행 중 아이콘에서 재실행하는 desktop 즐겨찾기 설정
  5. 2024.10.03 JDialog 에서 화면 출력전 JLabel 크기 확인 방법
  6. 2024.09.12 Lognote - Toy project
  7. 2024.09.09 Lognote - 특정 패키지 로그만 출력하기(~ 0.3.8)
  8. 2024.04.03 multi thread는 필요한데 mutex 는 안쓰는 쪽으로?
  9. 2023.07.12 c++ const 함수와 mutable
  10. 2023.07.05 gist - 예제 코드들을 정리 하기

Lognote - Log viewer, Android logcat viewer for Windows, Linux, Mac

프로그래밍/lognote 2024. 12. 5. 04:50
반응형

https://github.com/cdcsgit/lognote/releases

 

Releases · cdcsgit/lognote

Log viewer, Android logcat viewer for Windows, Linux, Mac - cdcsgit/lognote

github.com

 

LogNote-1.0.zip
5.85MB

 

 

텍스트 로그 파일 보기(필터)

Logcat 보기(Online/Offline)

정규 표현식 필터

에이징 테스트 : 라인수에 따라 파일 분할 저장

Kotlin + swing

 

config 파일 저장 경로 설정

- 디렉토리 생성

- Windows : set LOGNOTE_HOME=D:\lognote
- Linux : export LOGNOTE_HOME=~/lognote
- Mac : export LOGNOTE_HOME=~/lognote

 

 

실행

- Windows : start javaw -Dfile.encoding=utf8 -Xmx1024m -jar LogNote.jar
- Linux : java -Dfile.encoding=utf8 -Xmx2048m -jar LogNote.jar
- Mac : java -Dfile.encoding=utf8 -Xmx2048m -jar LogNote.jar

 

 

 

사용팁

특정 패키지 로그만 출력하기(1.0 ~ 추가된 "Packages" 메뉴 사용)

특정 패키지 로그만 출력하기(~ 0.3.8)

ubuntu 실행 아이콘 추가하기

스크린 캡쳐 쉽게 하기(캡쳐 버튼추가, 특정 로그 발생시 캡쳐)

 

version 1.0

- 로그 출력을 위한 패키지 선택 기능 추가
- 선택 영역 확인 UI 추가(로그 복사를 할 때 영역 확인)

- UI 업데이트

 

version 0.3.8

- 버그 수정(MAC 에서 실행시 exception 발생하는 현상 수정)

 

version 0.3.7

- 버그 수정

- 컬럼 별로 보기 추가


-  process 명 보기 컬럼 추가

 

- UI 수정

 

version 0.3.6

- 버그 수정

- 로그 파일 포멧 설정 기능 추가(다른 로그 레벨 정보가 있는 파일 포멧 설정)

- 로그 트리거 추가(aging test 시 특정 로그 발생시 명령을 실행하거나 다이얼로그 출력)

 

version 0.3.5

- 버그 수정(프로세스 업데이트 중 멈추는 현상 수정)

- 정규 표현식 필터에도 컬러태그 적용 되도록 함

- logcat 레벨 설정 위치 메뉴바에서 하단 상태바로 이동

- 로그 뷰(full, filtered) 저장 기능 추가

 

version 0.3.4

- 버그 수정
- 최근 파일을 열때 이전에 사용한 필터 적용 여부 팝업 추가

- 프로세스 정보에 대한 업데이트 주기 설정 메뉴 추가

 

version 0.3.3

- logcat 수신 모드일때 key 입력으로 포커스 이동시 툴팁에 로그 프로세스 정보 출력

- 타이틀 바에 실행 모드 표시

- 최근 파일 저장 / 불러오기(북마크 저장)

- 코드 리팩토링

- 로그 필터 콤보박스에 '#' 입력시 사용 가능한 컬러 리스트 출력

 

version 0.3.2

- logcat 로그가 아닌 로그 파일에 필터가 적용되지 않는 현상 수정

- 코드 리팩토링

- 최근 파일 저장 / 불러오기(파일 별 필터 저장)

- 스크롤백 제한으로 로그 파일 삭제 될때 화면이 밀려올라가는 현상 수정

- logcat 수신 모드일때 툴팁에 로그 프로세스 정보 출력

- 업데이트 체크 메뉴 추가

 

version 0.3.1

- 단축키 로직 정리

- 필터 추가시 컬러 태그 적용 메뉴 추가

- 버그 수정

 

version 0.3.0

- 버튼에 아이콘 추가

- 로그뷰에서 보여지는 로그 모드(Open, Adb, Cmd, Follow) 에 따라 타이틀바 변경

- 버그 수정

 

version 0.2.9

- default font 변경 : dialog -> dialoginput

- 정규표현식 파싱 에러 발생시 텍스트 컬러 변경(알림)

- 검색에서 shift - enter 입력시 이전 항목으로 이동

- 버그 수정

 

version 0.2.8

- logcat 명령 변경 기능 추가

- 검색 기능 추가

   Ctrl + F : 검색바 보이기
   ESC : 검색바 숨기기
   F3 : 이전 항목으로 이동
   F4 : 다음 항목으로 이동
   필터 또는 전체 로그 뷰 클릭 :검색 타겟 뷰 설정

 

version 0.2.7

- 필터 아이템별 컬러 설정 기능 추가

- Ctrl + 필터버튼 실행시 필터 내용 붙이기 기능 추가

 

version 0.2.6

- UI 및 로그 컬러 관련 설정 합침

- 내장 색상표 적용 UI 변경

- 버그 수정

 

version 0.2.5

- UI 콤포넌트 폰트 사이즈 변경 기능 추가

- 내장 색상표 기능 추가(light, dark)

- 필터 / bold 텍스트 FG / BG 컬러 설정

- 저장 파일 default prefix "LogNote" 로 설정

- 필터 / bold 텍스트 겹칠 경우 bold 컬러 적용

- 안정성 개선??

 

version 0.2.4

- 환경 변수 "LOGNOTE_HOME" 참조 하여 config 파일 저장 위치 설정

- FlatLaf 적용(https://github.com/JFormDesigner/FlatLaf)

 

version 0.2.3

- 필터 입력 콤보박스 멀티 라인 적용

- 로그 화면 비율 조절시 일정 크기 이하로 변경 되지 않는 현상 수정

- 코드 정리

 

version 0.2.2

- 디바이스 재부팅 등으로 연결이 끊겼을때 연결 재시도 로직 추가

- 설정 변경시 즉시 저장(창닫을 필요 없음)

 

version 0.2.1

- 멀티 라인 북마크 기능 추가(여러라인 선택 후 동시 북마크)

- 컬러 세팅 아이템 추가

 

version 0.2.0

- adb 에서 logcat 읽기 속도 개선

- 필터 적용 속도 개선

- 컬러 세팅 아이템 추가

 

version 0.1.9

- 자주 사용하는 필터 테이블 바에 추가 가능 하도록 수정

- 필터 관리 창에서 순서 변경 기능 추가

- 자주 사용하는 명령 관리 기능 추가

 

version 0.1.8

- 상태바 tooltip 에 열린 파일 리스트 출력

- adb 연결 보기 실패시 에러 팝업 출력

- 필터 tooltip 에 include, exclude 항목 출력

 

version 0.1.7

- 사용하지 않는 필터 콤보박스 숨기기

- ESC 키 입력시 다이얼로그 닫기

 

version 0.1.6

- 여러파일 동시 열기

- tooltip 추가

- windows drag & drop 개선

- 스크롤백 제한으로 인한 로그 삭제 일시 중지 기능 추가

 

version 0.1.5

- 로그 컬러 세팅 추가

- 필터 로그뷰에서 커서 이동시 전체 로그뷰 커서 이동 개선

- 스크롤백 라인 제한으로 인한 로그 삭제시 뷰 동작 개선

 

version 0.1.4
- 설정에서 폰트 변경시 즉시 적용
- 필터 저장 및 가져오기

version 0.1.1
- 팝업메뉴 추가
- 대소문자 구분

version 0.0.1
- 정규 표현식 필터
- On/Off line 로그 뷰

 

 
 
 
 
반응형
:

Lognote - 스크린 캡쳐 쉽게 하기

프로그래밍/lognote 2024. 12. 5. 04:47
반응형

https://cdcsman.tistory.com/entry/Lognote-Android-logcat-viewer

 

Lognote - Log viewer, Android logcat viewer for Windows, Linux, Mac

https://github.com/cdcsgit/lognote/releases Releases · cdcsgit/lognoteLog viewer, Android logcat viewer for Windows, Linux, Mac - cdcsgit/lognotegithub.com   텍스트 로그 파일 보기(필터)Logcat 보기(Online/Offline)정규 표현식 필터에

cdcsman.tistory.com

 

1. 스크린 캡쳐 버튼 추가하기

전체 로그 출력 창에 있는 "Cmds" 버튼을 클릭하여 "Cmd Manager" 로 이동

 

Cmd Manager 에서 "New" 로 버튼 추가

 

스크린 캡쳐 명령 스크립트를 만든 후 경로 입력

#! /bin/sh

DATE=`date "+%Y%m%d_%H.%M.%S"`
/usr/bin/adb exec-out screencap -p > /home/cdcs/tmp/capture/screen-$DATE.png
# Print completion status to logcat
/usr/bin/adb shell log -t Lognote screen capture completed

 

스크린 캡쳐 명령 실행 으로 저장된 파일 확인

 

 

2. 특정 로그 발생시 스크린 캡쳐 하기

View > Log Trigger 으로 트리거 화면 실행

"Add" 버튼으로 트리거 추가

 

트리거 실행 후 로그 발생시("screencapture test") 로그 저장 확인

 

 

* 리눅스를 기반으로 작성 되어 다른 OS는 수정이 필요할수 있다.(명령, 경로 등)

반응형
:

Lognote - 특정 패키지 로그만 출력하기(1.0 ~)

프로그래밍/lognote 2024. 10. 22. 01:00
반응형

 

 

Lognote - Log viewer, Android logcat viewer for Windows, Linux, Mac

https://github.com/cdcsgit/lognote/releases Releases · cdcsgit/lognoteLog viewer, Android logcat viewer for Windows, Linux, Mac - cdcsgit/lognotegithub.com   텍스트 로그 파일 보기(필터)Logcat 보기(Online/Offline)정규 표현식 필터에

cdcsman.tistory.com

 

이 기능은 설치된 패키지 정보를 사용하기 때문에 로그를 보기 위한 앱을 설치 한 후 적용한다.

 

1. 패키지 리스트 다이얼로그를 실행한다.("packages" 버튼 클릭)

 

2. 사용할 패키지 명을 선택한다.(선택 / 해제 : 엔터키 또는 더블 클릭)

 

3 - 1. 선택된 패키지명을 "Packages" 메뉴 옆에 있는 것을 확인 후 logcat을 재시작한다.

선택된 패키지의 로그가 출력되는 것을 확인 할 수 있다.(예제 2개 선택)

 

3 - 2. 선택된 패키지명을 "Packages" 메뉴 옆에 있는 것을 확인 후 logcat을 재시작한다.

선택된 패키지의 로그가 출력되는 것을 확인 할 수 있다.(예제 1개 선택)

반응형
:

ubuntu 실행 중 아이콘에서 재실행하는 desktop 즐겨찾기 설정

프로그래밍/lognote 2024. 10. 14. 23:57
반응형

실행 아이콘 desktop파일을 만든다.

경로 : ~/.local/share/applications/Lognote.desktop

Exec, Icon 항목은 설치된 위치에 따라 설정한다.

[Desktop Entry]
Name=Lognote
Comment=Lognote
Exec=/home/USER/lognote/lognote.sh %U
Icon=/home/USER/lognote/lognote.png
Terminal=false
Type=Application
StartupNotify=true
MimeType=text/plain;
Categories=TextEditor;
Keywords=Text;Plaintext;
X-Ubuntu-Gettext-Domain=lognote

 

Applications 메뉴에서 lognote 로 검색하면 아이콘이 생성된 것을 볼수 있다.

 

즐겨 찾기에 추가해서 실행을 하면 실행된 아이콘과 즐겨 찾기가 분리되어 있고

실행 후  실행 목록에 있는 아이콘을 ctrl - click 을 하면 아무런 반응이 없다.

 

기존 프로그램들을 해보면 ctrl - click 을하면 새창이 실행되는 것을 볼 수 있는데

원인은 "StartupWMClass" 가 설정되지 않아서 이다.

 

확인이 필요한 프로그램이 실행된 상태에서 "xprop WM_CLASS" 명령을 치면 커서가 바뀐다.

이때 실행된 프로그램을 클릭하면 WM_CLASS 정보가 출력된다.

$ xprop WM_CLASS
WM_CLASS(STRING) = "com-blogspot-cdcsutils-lognote-Main", "com-blogspot-cdcsutils-lognote-Main"

 

desktop 파일에 "StartupWMClass=..."을 추가한다.

[Desktop Entry]
Name=Lognote
Comment=Lognote
Exec=/home/USER/lognote/lognote.sh %U
Icon=/home/USER/lognote/lognote.png
Terminal=false
Type=Application
StartupNotify=true
MimeType=text/plain;
Categories=TextEditor;
Keywords=Text;Plaintext;
X-Ubuntu-Gettext-Domain=lognote
StartupWMClass=com-blogspot-cdcsutils-lognote-Main

 

즐겨찾기와 분리되지 않고 ctrl-click 을 하면 새창이 뜨는 것을 확인 할수 있다.

 

 

반응형
:

JDialog 에서 화면 출력전 JLabel 크기 확인 방법

프로그래밍/java 2024. 10. 3. 21:35
반응형

JDialog 화면을 구성할때 JLabel 의 크기를 확인 해야 될 때가 있다.

JLabel 생성후 text를 설정을 해도 그 크기가 설정되지 않는다.

 

이때는 dialog panel을 설정한 후 pack() 을 호출하면 JLabel 의 크기가 설정이 되어 그 값을 읽어 올 수 있다.

그리고 나서 읽어들인 크기 값을 사용하여 필요한 UI를 만든 후 다시 panel 을 설정하면 된다.

 

JLabel 이 다른 컴포넌트와 붙어 있을 경우 창크기와 맞출때 사용한다.

contentPane.add(panel)
pack()

// mLabel의 크기를 확인 하고 mTestTF의 크기를 재설정한다.
mTestTF.preferredSize = Dimension(panelWidth - (mLabel.width + 5), mTestTF.preferredSize.height)

// 변경된 값의 적용을 위해 panel을 삭제/추가 한다
contentPane.remove(panel)
contentPane.add(panel)
pack()
반응형
:

Lognote - Toy project

프로그래밍/lognote 2024. 9. 12. 01:18
반응형

업무에서 코드 작업은 한계가 있다.

"이렇게 바꾸면 될것 같습니다" 라고 하면 "문제가 되지 않는다면 그대로 두세요"...

코드라는게 변경하면 그에 따른 예상치 못한 이슈가 찾아오니 마음대로 바꿀수 없다.

특히나 일로는...

 

그래서 떠오른게 언젠가 책에서 읽은 Toy project.

업무에 영향을 주지 않으면서 내 마음대로 수정 할 수 있는 뭔가 재밋는게 필요했다.

뭘 만들까 고민을 했을때 그래도 업무에 도움이 되면 좋을 것 같아서 로그 뷰어를 만들기 시작했다.

틈틈히 시간 날때 작업을 한거라 빠르게 진행이 된건 아니지만 나름 쓸만하게 만들어진거 같다.

 

처음엔 오류가 많아 사람들에게 보여주기 민망했지만..

로그를 볼때 필요하다고 생각하는 부분들을 추가하고 오류들을 수정했다.

이렇게 원하는 대로 할수 있다는 것은 많은 재미를 줬고

지금도 머리가 멈춰 있는 거 같을때는 어떻게 바꿀까 생각하고 바뀐 코드를 적용한다.

 

내 마음대로 하고 싶은데 못할때 한번쯤은 Toy project를 시도해 보자.

 

* 가끔씩 잘 쓰고 있다는 얘기를 들으면 기분이 참 좋다~

반응형
:

Lognote - 특정 패키지 로그만 출력하기(~ 0.3.8)

프로그래밍/lognote 2024. 9. 9. 12:02
반응형

 

 

Lognote - Log viewer, Android logcat viewer for Windows, Linux, Mac

https://github.com/cdcsgit/lognote/releases Releases · cdcsgit/lognoteLog viewer, Android logcat viewer for Windows, Linux, Mac - cdcsgit/lognotegithub.com   텍스트 로그 파일 보기(필터)Logcat 보기(Online/Offline)정규 표현식 필터에

cdcsman.tistory.com

 

 

특정 패키지에 대한 로그만 출력하기를 원할때는 uid 를 사용하면 된다.

sharedId 를 사용하지 않는 한 패키지명 연결된 uid는 중복되지 않기 때문에

uid로 패키지 로그를 구분할수 있다.

 

1. 앱 설치하기
    앱이 설치 되어야 uid 값이 설정 되기 때문에 일단 앱을 설치 한다.

 

2. uid 값 얻기

    package 를 설치 한 후 다음 명령을 통해 uid 값을 확인 한다.

    windows - adb.exe shell cmd package dump PACKAGE_NAME
         출력값에서 userId 또는 packageUid 값을 확인 한다.
         ex) adb.exe shell cmd package dump com.example.myapplication > package.txt

 

    linux, mac - adb shell cmd package dump PACKAGE_NAME | grep packageUid

 

3. Lognote 에 확인한 uid 값을 적용

    임시 적용 :  상단의 logcat 명령에 "--uid=XXX" 를 추가 한다.(Lognote 재시작시 지워짐)

 

    설정 추가 : 상단의 logcat 명령에 "--uid=XXX" 를 추가 한다.(Lognote 재시작시 유지됨)
        Setting > Log cmd

        log 명령 콤보박스에서 새로 추가한 명령을 확인 할수 있다.

 

 

4. 실행 결과 - uid 값에 따른 로그만 확인 된다.

 

 

* 앱이 설치되면 uid 는 유지 되어 처음 설치시에만 uid 를 확인하면 된다.



 

 

반응형
:

multi thread는 필요한데 mutex 는 안쓰는 쪽으로?

프로그래밍/c,c++ 2024. 4. 3. 23:59
반응형

무서운 deadlock 때문에 나온 의견

process는 죽을순 있지만 멈추면 안돼~

반응형
:

c++ const 함수와 mutable

프로그래밍/c,c++ 2023. 7. 12. 00:07
반응형

const 함수는 값 변경을 막는데 mutable 키워드를 사용하면 값 변경이 가능하다.

의도적으로 값 변경을 막는 함수에서 왜 mutable이 필요할까?

 

함수 매개변수로 전달되는 변수에 대한 const는 그 값 자체 변경을 막아 주어 안전한 사용이 가능 하다.

함수에서 멤버 변수 값을 변경하지 않는 것을 보장 할때 const 키워드를 함수 선언에 붙인다.

const 함수 여러 예외 상황을 발생 시킨다.

 

1. 같은 const 함수 외 함수 호출을 할수 없다.

2. 멤버 변수 값을 변경 할수 없다.(전역 변수 변경은 가능하다)

    이 경우는 대부분 원하는 상황이다.

내가 개발 중인 클래스 멤버 함수에 const를 설정했을 경우에는 이슈가 있을때 맞춰서 수정이 가능하다.

const로 설정하는게 힘들 경우 지워서라도 해결을 할수 있다.

 

문제는 수정 불가능한 라이브러리를 사용하는데 const 함수를 재정의 해야 할 경우 발생한다.

Aa 클래스가 라이브러리 클래스 일 경우 Ba는 const 함수를 정의 해야만 한다.

Ba 클래스에서 멤버 변수값 변경이 필요할 경우 const를 지울수도, const 가 없는 함수를 호출 할수도 없다.

이때 멤버 번수에 mutable를 지정하여 사용하면 멤버 변수 값 변경이 가능해진다.

일반적으로 멤버 변수 값을 바꾸고 싶지 않을때 const를 사용하기 때문에 mutable 사용이 어색한 면도 있다.

만약 printTest 함수가 멀티 스레드 환경에서 동작 하고 mutex로 싱크를 맞춰야 한다면 어떻게 해야 할까?

void std::mutex::lock(); 함수는 const 함수가 아니고, 그래서 printTest에서 사용 할수 없다.

"mutable std::mutex mMutex;" 같이 mutable 을 사용하면 const 함수에서도 lock 이 가능해 진다.

mutable 은 이런 경우 처럼 로직적으로 필요하지만 const로 사용 불가능해진 상황을 위해 필요한 기능으로 보여진다.

반응형
:

gist - 예제 코드들을 정리 하기

프로그래밍 2023. 7. 5. 00:39
반응형

프로그래밍 블로그를 작성 하면서 가장 많이 필요하고 사용하는게 코드를 정리하는 일이다.

블로그 별로 코드 하이라이트 처리를 하는 plugin을 적용 했는데 생각보다 관리가 쉽지 않다.

https://gist.github.com/

 

Discover gists

GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

gist를 사용해 예제 코드를 정리 하는 방법을 설명 한다.

1. gist 로 이동(https://gist.github.com/)

2. 로그인 하면 새 코드 생성을 위한 화면이 나온다.

3. 내용을 작성한다.

- Gist description : 코드에 대한 간단한 설명, 입력하지 않아도 되지만 나중에 다시 볼때를 생각해서 입력한다.

- Filename including extension : 확장자에 맞춰서 코드 하이라이팅이 된다.

- 코드 입력

- Create secret gist : 검색이 되지 않을 뿐 누구나 볼수 있다.(public으로 선언하면 검색도 된다)

 

4. 블로그에 가져오기

- Embed 에서 스크립트 코드를 복사한다.

- 블로그 html 보기로 이동한다.

- 복사한 코드를 붙여 넣고 한 후 블로그 미리 보기에서 확인 한다.

- Add file 를 통해 하나의 추가한 코드는 Embed 코드를 통해 같이 움직인다.

  => 개별적으로 하고 싶을 때는 Add file 이 아닌 우상단에 있는 "+" 를 통해 새로 생성 해야 한다.

 

Revision 으로 관리 되고 있어 이전 수정 내용확인이 가능 하다.

자주 사용하지는 않겠지만 한번쯤은 이전 내용을 보는 일이 있을 걸로 생각된다.

 

블로그 적용 형상

 

반응형
: