1. 로깅을 사용해야 할때

logging.info(), logging.debug(), loggin.warning(), loggin.error(), logging.exception(), logging.critical()

2. 로깅 레벨

DEBUG Detailed information, typically of interest only when diagnosing problems.
INFO Confirmation that things are working as expected.
WARNING An indication that something unexpected happened, or indicative of some problem in the near future (e.g. ‘disk space low’). The software is still working as expected.
ERROR Due to a more serious problem, the software has not been able to perform some function.
CRITICAL A serious error, indicating that the program itself may be unable to continue running.

3. 로깅을 화면으로 보기

print()

또는 logging.info 만 화면으로 보여짐

4. 로깅을 파일로 저장해서 확인하기

import logging
logging.basicConfig(filename='example.log',level=logging.DEBUG)

# command optoin 에서 로깅레벨 사용하기
--log=INFO
# 프로그램에서 사용하기
numeric_level = getattr(logging, loglevel.upper(), None)
if not isinstance(numeric_level, int):
    raise ValueError('Invalid log level: %s' % loglevel)
logging.basicConfig(level=numeric_level, ...)

# 로깅파일을 지우고 새로 작성하기
logging.basicConfig(filename='example.log', filemode='w', level=logging.DEBUG)

# 변수 로깅하기
logging.warning('%s before you %s', 'Look', 'leap!')

# 포맷으로 로깅하기
logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)
  - DEBUG:This message should appear on the console
logging.basicConfig(format='%(asctime)s %(message)s')
  - 2010-12-12 11:41:42,612 is when this event was logged.
logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
  - 12/12/2010 11:46:36 AM is when this event was logged

블로그 이미지

희망잡이

,

1. my script service 작성하기1. my script service 작성하기
[Unit]
Description=My service
After=network.target

[Service]
ExecStart=/usr/bin/python3 -u main.py
WorkingDirectory=/home/pi/myscript
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

2. my script service 파일 위치

/lib/systemd/system/myscript.service

3. service daemon reload 하기

sudo systemctl daemon-reload

4. 부팅시에 서비스로 작동하도록 처리하기

sudo systemctl enable myscript.service

5. 서비스를 시작 또는 종료하기

sudo systemctl start myscript.service

sudo sytemctl stop myscript.service

 

블로그 이미지

희망잡이

,
  • matplotlib - data visualization
  • NumPy - numerical data functionality
  • OpenPyXL - read/write Excel 2010 xlsx/xlsm files
  • pandas - data import, clean-up, exploration, and analysis
  • xlrd - read Excel data
  • xlwt - write to Excel
  • XlsxWriter - write to Excel (xlsx) files


블로그 이미지

희망잡이

,

Code Script

CREATE PROCEDURE atomic_proc ()
  LANGUAGE SQL  
  SPECIFIC atomic_proc  
 
  ap:  BEGIN ATOMIC            

     INSERT INTO c1_sched (class_code, day)     
       VALUES ('R33:TCC', 1);           
 
     SIGNAL SQLSTATE '70000';       
   
     INSERT INTO c1_sched (class_code, day)               
       VALUES ('R44:TDD', 1);    

  END ap


테스트 해보고 적용해 봐야 겠다.


블로그 이미지

희망잡이

,

1. 페이지에 레이아웃을 설정하기

초기이벤트에 레이아웃 추가하는 자바스크립트

- 필요한 파일

<link rel="stylesheet" type="text/css" href="../codebase/dhtmlx.css">

<script src="../codebase/dhtmlx.js" type="text/javascript"></script>

- 레이아웃 오브젝트 생성

var myLayout = new dhtmlXLayoutObject({

            parent: document.body,  // parent container

            pattern: "3T"          // layout pattern

        });

        

myLayout.cells("a").showHeader();

myLayout.cells("a").setText("New Text");

myLayout.setAutoSize("a;b", "c");

        

var GMaps = myLayout.cells("b").attachMap();


2. 분할된 특정 레이아웃에 Grid 배정하기



mygrid = dhxLayout.cells("a").attachGrid();

mygrid.imgURL = "/grid/dhtmlxGrid/codebase/imgs/csh_dhx_skyblue/";

mygrid.setImagePath("/grid/dhtmlxGrid/codebase/imgs/");

//the path to images required by grid         mygrid.setImagePath("./codebase/imgs/");                         mygrid.setHeader("Sales,Book title,Author,Price");//the headers of columns          mygrid.setInitWidths("100,250,150,100");          //the widths of columns          mygrid.setColAlign("right,left,left,left");       //the alignment of columns           mygrid.setColTypes("ro,ed,ed,ed");                //the types of columns          mygrid.setColSorting("int,str,str,int");          //the sorting types           mygrid.init();      //finishes initialization and renders the grid on the page

3. Grid에 이벤트 처리하기

mygrid.attachEvent("onRowSelect", doOnRowSelected)



블로그 이미지

희망잡이

,


웹페이지를 오픈하고 조회한 다음에 리프레쉬(Refresh) 하면 위와 같은 메시지가 발생합니다.

호출방식을 "post" 에서 "get" 방식으로 변경하니 에러메시지가 발행하지 않습니다.


블로그 이미지

희망잡이

,

<

사용예제


public String UserText

        {

            get { return (String)GetValue(UserProperty); }

            set { SetValue(UserProperty, value); }

        }

 

public static readonly DependencyProperty UserProperty = DependencyProperty.Register(

            "TextChange",

            typeof(String),

            typeof(Window1),

            new FrameworkPropertyMetadata(new PropertyChangedCallback(OnTextChangePropertyChanged)));

 

private static void OnTextChangePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)

{

            Window1 userNamecontrol = d as Window1;

            string newText = (string)e.NewValue;

            string oldText = (string)e.OldValue;

 

            userNamecontrol.txtNewText.Text = newText;

            userNamecontrol.txtOldText.Text = oldText;

}

 

private void btnChange_Click(object sender, RoutedEventArgs e)

{

            UserText = textBox1.Text;

}


참고사이트 : http://dotnetmvp.tistory.com/36


블로그 이미지

희망잡이

,

다국어로 데이타를 유지하기 위해서 특정테이블의 특정칼럼을 데이타 타입을 NVARCHAR2(300) 으로 변경했습니다.

저장함수로 쿼리를 작성해 놓았던 기존소스에서 에러가 발생하더군요.


ORA-12704 문자 집합이 일치하지 않습니다


뭐지...

원인을 분석해 보니 조회된 결과 데이타의 문자 데이타 타입이 일치하지 않는다는 것입니다.

한 칼럼은 VARCHAR2, 다른 칼럼은 NVARCHAR2 로 쿼리결과가 만들어 집니다.

UNISTR(VARCHAR2 칼럼) 하면 에러는 해결되는것 같습니다.

여기서 고민이 하나 생깁니다.

그러면 모든 VARCHAR2 칼럼을 NVARCHAR2 와 엮일때 UNISTR 함수를 사용해야 되는 건가...


여기서 하나 집고 넘어가야 할 부분이 있습니다. 

어플리케이션은 클라이언트와 데이타 베이스 영역으로 나눌수 있습니다.

데이타베이스는 설치시에 CHARACTER SET, NATIONAL CHARACTER SET 을 설정해서 테이블의 데이타 타입의 문자의 가변길이를 지정하는 연결고리가 됩니다.

CHARACTER SET 을 AL32UTF8 로 설정하면 한글, 영어를 제외한 다국어 (일어, 중국어 등)을 입력받아서 관리하기에 쉬울듯 합니다. VARCHAR2 에 저장될때 다국어를 변환해야 할 필요가 없을 거니까요.

만약에 CHARACTER SET 을 KO16MSWIN949 로 설정하면 한글, 영어 로 데이타를 관리하기는 쉬우나 다국어를 관리하기엔 데이타 변환이 필요해 보입니다. 그래서 VARCHAR2 칼럼을 NVARCHAR2 로 변환해서 입력되도록 변경했지요.

하지만 ORA-12704 에러가 발생합니다.

그리고 클라이언트의 CHARACTER SET 의 설정도 신경을 써야할듯 합니다.

서버는 UTF8로 데이타를 보내주었으나 클라이언트가 다른 CHARACTER SET 으로 설정되어 있으면 데이타가 깨어져서 보입니다.


블로그 이미지

희망잡이

,