Linux C ログ出力コード テンプレート サンプル コード

Linux C ログ出力コード テンプレート サンプル コード

序文

この記事は主に Linux C でのログ出力コード テンプレートに関する関連コンテンツを紹介し、参考と学習のために共有します。詳細な紹介を見てみましょう。

テンプレート

テンプレートは、log.c と log.h の 2 つのファイルに分かれています。

ログ.c

/** ログ.c **/
#include <unistd.h>
#include "log.h"

// ログ ファイル パス #define filepath "./ps_com_log.log"
 
//時間を設定する static char * settime(char * time_s){
 time_t タイマー = time(NULL);
 strftime(time_s, 20, "%Y-%m-%d %H:%M:%S",localtime(&timer));
 time_s を返します。
}
 
/*
 *印刷* */
静的 int PrintfLog(char * logText, char * 文字列){
 ファイル *fd = NULL;
 文字s[1024];
 文字tmp[256];

 //append メソッドを使用してファイルを開きます fd = fopen(filepath,"a+");
 if(fd == NULL){
  -1 を返します。
 }
 
 memset(s, 0, sizeof(s));
 メモリセット(tmp, 0, sizeof(tmp));
 
 sprintf(tmp, "*****[pid=%d]:[", getpid());
 strcpy(s, tmp);
 
 メモリセット(tmp, 0, sizeof(tmp));
 時刻を設定します。
 strcat(s, tmp);

 strcat(s, "]*****");
 fprintf(fd, "%s", s);

 fprintf(fd, "*[%s]*****:\n",ログテキスト); 
 fprintf(fd, "%s\n",文字列); 
 fd をクローズします。
}
 
 /*
 *ログ書き込み* */
void LogWrite(char *logText,char *文字列)
{
 //[マルチスレッドをサポートするにはロックが必要です] pthread_mutex_lock(&mutex_log); //ロック。 
 //ログ情報を印刷 PrintfLog(logText, string);
                  
 //[マルチスレッドをサポートするにはロックが必要です] pthread_mutex_unlock(&mutex_log); //ロックを解除します。            
}

ログ.h

#ifndef __LOG_H__
# __LOG_H__ を定義します
#include <stdio.h>
#include <文字列.h>
#include <time.h>
 

void LogWrite(char * logText,char *文字列);

#endif /* __LOG_H__ */

テストファイル

ログ出力機能ができたので、簡単なテストをしてみましょう。

#include "stdio.h"
#include "log.h"
int main(int argv,char**argc){
 printf("テスト\n");
 LogWrite("INFO","Hello World!");
 LogWrite("エラー","Hello World!");
 LogWrite("mint","Hello World!");
 LogWrite("iout","Hallo World!");

 0を返します。
}

上記のコードは非常に単純なので、詳細には説明しません。

実行結果:

*****[pid=15971]:[2018-12-05 14:24:21]******[情報]*****:
「こんにちは世界」
*****[pid=15971]:[2018-12-05 14:24:21]******[エラー]*****:
「こんにちは世界」
*****[pid=15971]:[2018-12-05 14:24:21]******[ミント]*****:
「こんにちは世界」
*****[pid=15971]:[2018-12-05 14:24:21]******[iout]*****:
こんにちは世界!

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Linuxはlogrotateを使用してログファイルを切り取る
  • Linux での logrotate ログポーリング操作の概要

<<:  Webpackを使用して複数ページのプログラムを構築するための実装手順

>>:  WeChatアプレットは水平および垂直スクロールを実現

推薦する

Ubuntu 20.04 CUDA & cuDNN のインストール方法 (グラフィカル チュートリアル)

CUDA インストール cuda をダウンロードサポートされているcudaバージョンを表示するには...

JavaScript でローカル変数をグローバル変数に変換する方法

まず関数の自己呼び出しを知る必要がある関数の自己呼び出し - 自己呼び出し関数1 回限りの関数 - ...

JavaScriptの動作メカニズムの詳細な説明とイベントループについての簡単な説明

目次1. JavaScript がシングルスレッドなのはなぜですか? 2. タスクキュー3. イベン...

MySQL で結合を使用して SQL を最適化する方法の詳細な説明

0. 以下のテストに関連する表を準備する関連するテーブル作成ステートメントについては、https:/...

AngularJSループオブジェクトプロパティで動的列を実装するアイデアの詳細な説明

動的な列を実現するための Angularjs ループ オブジェクト プロパティ利点: オブジェクトを...

JavaScript BOM ロケーション オブジェクト + ナビゲーター オブジェクト + 履歴オブジェクト

目次1. 場所オブジェクト1. URL 2. 場所オブジェクトのプロパティ3. ロケーションオブジェ...

Vueカスタム命令とその使用方法の詳細な説明

目次1. 指令とは何ですか? Vue でよく使われる組み込みの v ディレクティブv-if と v-...

Linux でショートカットアイコンを設定する方法

序文Linux でショートカットを作成すると、アプリケーションをより速く開くことができます。ここで、...

Dockerはローカルイメージとコンテナの保存場所を設定します

指定したサイズより大きいファイルを検索するには、find コマンドを使用します。 検索 / -typ...

div+cssとウェブ標準ページの利点

div 要素は、HTML ドキュメント内のブロックレベル コンテンツの構造と背景を提供するために使用...

MySQLがウィンドウ関数で合計関数を実行するときに発生する可能性のあるバグ

MySql のウィンドウ関数を使用して統計データを収集する際に、小さな問題が見つかったので、それにつ...

MySQL シリーズ 11 ログ

チュートリアルシリーズMySQL シリーズ: MySQL リレーショナル データベースの基本概念My...

CocosCreatorプロジェクト構造の仕組みの詳細な説明

目次1. プロジェクトフォルダ構造1. アセットフォルダ2. 図書館3. ローカル設定(ローカル) ...

CentOS6.8 中国語/英語環境切り替えチュートリアル図

1. はじめに英語に慣れていない人は、システムを英語から中国語に変更したいかもしれません。一方、クラ...

ウェブページを自動更新するための 3 つのコード

実際、この効果を実現するのは非常に簡単で、この効果は特殊効果と呼ぶことすらできません。次のコードを ...