• 締切済み

【C#】 ログ出力で便利なオープンソース

タイトルの通り、C#でログ出力に便利なオープンソースを探しています。また、以下要件を満たすものを探しています。 1. イベントログ出力ができる。[リモートのサーバにも出力可]。 2. ログをファイルに出力する機能をもつ。 3. 利用者多数。(問題に直面した時、解決しやすいため) log4net??[log4jを参考にしてる]かな?このオープンソースの情報はweb上でよく見かけてたのでいいかな~って思ったのですが、イベントログの出力はローカルマシンのみ許可しているとのこと。 いいのしってるよーー!!っていう方、教えてください。

みんなの回答

noname#245936
noname#245936
回答No.1

んー。 個人的には、C#でリモートにログを吐く、.NET思想に逆行した 機能実装はどうかな…と思います。 ローカルであれば、テキスト出力もイベントログ吐きだしも チョー簡単だと思うのですが… それなら、DBMSに出力したらいいのでは? 何故リモートで、それもOS付属のログテーブルへの出力なの でしょうか?

yamachan_tomo
質問者

補足

理由はよくわかりません。 上長からの指示をもらっただけです。 また、既に作業に取り掛かり始めている事から、DB出力に 変更することも難しいと予想しています。 そういうこと言ったら、このツールいらないんじゃない??って 話になるかもしれないですが、今後のためにも知りたかったので 質問しました。

関連するQ&A

  • リモートコンピュータのイベントログを取得する方法

     ネットワーク上のコンピュータのイベントログを集めるツールを作成したのですが、遅くて困っています。1台のコンピュータからログをとるのに10分もかかります。  同じ環境で、イベントビューアを使用してリモートコンピュータ上のイベントログを集めると、1台あたり30秒ぐらいで終わるのですが。  ちなみに、ツールは、C++で、APIを使用して作成しました。OpenEventLog関数でリモートコンピュータ上のイベントログをオープンして、ReadEventLogでログファイルを読み込んでいます。  イベントビューアでは、ここでどんな処理をしているのでしょうか?  ご存知の方がいらっしゃいましたら、どうか教えてくださいませ。

  • log4jの使用方法について

    現在、Javaで開発されたアプリケーションのシステム運用を行っています。 (OSはLinux、APサーバーはTomcatを使用) あるバグ解析のため、ログ出力(log4jを使用)を追加したところ Socket Exception:Too many open filesが発生しました。 原因はログ出力した際のファイルクローズ漏れでは?と指摘を受けました。 log4jのログ出力機能を使用した際にはクローズ処理は必要なのでしょうか? 以上、よろしくお願いします。

  • イベントID 52225 ソース ati2mtag

    サーバー:NEC Express OS Windows2000Server サーバへアクセスできないため、Serverを見たらフリーズしていました。手動でシャットダウンをさせ、アクセスができるようになりました。 イベントログを見たところ、シャットダウンの直前に下記のログが記録されておりました。これはフリーズと関係があるのでしょうか? イベント ID (52225) (ソース ati2mtag 内) に関する説明が見つかりませんでした。リモート コンピュータからメッセージを表示する ために必要なレジストリ情報またはメッセージ DLL ファイルが ローカル コンピュータにない可能性があります。 この説明を取得するために /AUXSOURCE= フラグを使用することが できる可能性があります。 よろしくお願い致します。

  • log4jでログレベルが取得できない。

    次のようなLOG4jの設定ファイルからログレベルを取得したいのですが うまく取得できません。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!-- 一般ログファイル出力 --> <appender name="LogFile" class="org.apache.log4j.FileAppender"> <param name="File" value="c:/TestLog4j.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p %m (%F:%L) %c[%t]%n"/> </layout> </appender> <!-- 一般ログ出力設定 --> <logger name="clip"> <level value="DEBUG"/> <appender-ref ref="LogFile"/> </logger> </log4j:configuration> JAVAのソースは //ログ4j設定ファイル読み込み DOMConfigurator.configure("c:/log4j.xml"); //ロガーの取得 Logger batchLog = Logger.getLogger(getClass()); //テストログの出力 batchLog.fatal("テスト"); //ログレベルの取得 Level logLevel = batchLog.getLevel(); System.out.println(logLevel);   // 結果:null System.out.println(logLevel.toString()); // NullPointerExceptionでエラー テストログは出力できるのですが、ログレベルの取得で エラーになってしまいます。 log4jの設定ファイルからログレベルを取得するにはどうすれば 良いのでしょうか?

    • ベストアンサー
    • Java
  • apacheのログファイルがいつの間にか消える

    Redhat Linux7.0J apache_1.3.19 openssl_0.9.6b apache_1.3.19+ssl_1.44の環境で 下記のログファイルの中身が、いつの間にか 全て消えてなくなるのです。  マシンを再起動すれば、たちまちログ出力は 開始されるのですが、また気付いたら消えています。  消えるまでにどれだけの日数がかかるのかは 分かりません。サーバの再起動は3ヶ月に1回ぐらいは 実施していますが、毎回logのことを調べてはいないので どのタイミングで消えたかは全く不明です。 定期的に消えるような処理が自動的に動いているのでしょうか?(それはcronという機能のことですか?cronの設定とかよく分からないのですが現状どのようなcronが動いているか確認する手段(コマンド)はありますか?) [ログファイルは、下記のように1ファイル/1Wずつ保存されていて気付いたら中身が消えている] /usr/local/apache/logs/httpsd_access_log ・・・ /usr/local/apache/logs/httpsd_access_log.4 /usr/local/apache/logs/httpsd_error_log ・・・ /usr/local/apache/logs/httpsd_error_log.4 ログのrotationについては /etc/logrotate.d/syslogファイルに 下記を記述しています。  この記述方法が悪いのでしょうか? インストールの初期状態で自動的に記述されていた maiilogファイルなどを真似して記述したのですが 間違いがありますか? [/etc/logrotate.d/syslogファイルの記述] /usr/local/apache/logs/httpsd_access_log { postrotate /bin/kill -HUP `cat /var/run/xinetd.pid 2>/dev/null` 2>/dev/null || true endscript } /usr/local/apache/logs/httpsd_error_log { postrotate /bin/kill -HUP `cat /var/run/xinetd.pid 2>/dev/null` 2>/dev/null || true endscript }

  • log4j.xmlファイルの読込で。。。

    log4Jの設定ファイルの読込を DOMConfigurator.configure("log4j.xml"); とJavaで記述していますが以下のエラーが表示されます。 log4j:ERROR Could not parse file [log4j.xml]. java.io.FileNotFoundException: C:\WINDOWS\System32\log4j.xml (指定されたファイルが見つかりません。) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source) at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source) at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source) at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source) atorg.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) at javax.xml.parsers.DocumentBuilder.parse(Unknown Source) at org.apache.log4j.xml.DOMConfigurator$1.parse(DOMConfigurator.java:598) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:711) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:604) at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:733) at HttpTestServlet.doPost(HttpTestServlet.java:31) どこに原因があるのかわかりませんので、 どなたかわかる方がいらっしゃいましたらご指摘願います。

  • 自アプリの一部にオープンソースを使う

    自アプリの本体(スクリプト)を、ここでは1ファイルと仮定して A.phpとします。 ここで、A.phpからインクルードしたり、 ブラウザ表示時にページ内に表示するものとして、 GPL、LGPL、BSDなどのオープンソースのもの(コードや、画像なども含む)(複数使ってライセンスが入り混じる場合もあり) を使いたいとします。 (※オープンソースのもの以外は使用せず、またそれらは改造もせず素のまま使うとします。) このとき、A.phpはどのような状態に置かれますでしょうか? A.phpのライセンスは、自分で決めることができるのでしょうか。 たとえば、A.phpの改変を認めない、再頒布を認めない、有料での使用とする、 あるいは、(PHPとすると配布する場合は困難ですが)コードを公開しない、隠蔽する といったことは、可能でしょうか? 具体的には、以下のような状況を想定しています。可・不可を指摘していただけると幸いです。 (1)アプリ全体を、あるサイト上で、無料で使用できるWEBサービスとして公開する。ソースは公開しない。 (2)上記(1)で、「有料で使用できる」とする場合。 (3)アプリ全体を、各自のサーバーに設置してもらい、使用してもらう。(無料) (4)上記(3)で、A.phpについてはソースの改変と再頒布を許可しないことにする。 (5)上記(4)で、さらに有料で使用権を購入するような場合。 (6)上記(4)で、使用時はページ内に広告の表示を義務づける場合。 さらに、各自サーバー設置の場合には、 こちらでアプリ全体をまとめてzipなどにして配布よいのか、 または自作のA.phpのみを配布し、設置する側に各所から必要なものをダウンロードしてもらうべきなのか、 も知りたく思います。 どうぞよろしくお願いいたします。

  • リモート・マシン上で実行したアプリケーションをローカルの画面に出力したい。

    こんにちは、kaituyoと申します。Solaris7でリモートログインした端末で、ログイン先のadmintoolを操作したいのですが、上手くいきません。 だいたい下記のようにしているのですが、 「Can't open display sun-local:0.0 」となります。 おそらく、下記設定の中で「sun-local:0.0」が違うのではと思います。 localとremoteではセグメントがことなりサブネットマスクは/26です。 どなたかご指導おねがいします。 ==================================== 操作端末 のマシンのホスト名を sun-local リモート先 のホスト名を sun-remote マシンの /etc/hosts ファイルには互いのマシンのホスト名と IP Address が登録されている sun-local% xhost +sun-remote <CR> sun-local% rlogin sun-remote <CR> Last login: Mon Jul 24 10:32:47 from millet Sun Microsystems Inc. SunOS 5.3 Generic September 1993 You have mail. sun-remote% setenv DISPLAY sun-local:0.0 <CR> sun-remote% admintool & <CR>

  • FireFox、Operaで出力するとhtmlソースが出てしまう

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=554339 を読んだのですが、きちんと text/htmlで出力しているにも関わらず、FireFox、Operaで開くとhtmlソースが出てしまいます。 (win IE、Mac Safariではhtmlとして(きちんと)開かれる) ソースは以下の通りです。 (テスト用で必ずエラーページを出力するようになっています。) --------------------- #!/usr/local/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse(*form); $userID = "$form{'id'}"."\n"; open(KEIJI,"<id.dat") || die "File Open Error"; @all = <KEIJI>; close(KEIJI); foreach(@all){ #ワードを配列に追加 push @wordList,$_; } $messageID = 0; foreach(@wordList){ if($userID eq $_){ $messageID = $count; last; } $count = $count + 1; } if($messageID eq 0){ &error_output; exit; } sub error_output{ print "Contest-type:text/html\n\n"; print << "EOM"; <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL was not found on this server.</p> </body></html> EOM } ------------------------ 要は「このファイルはhtmlです」とプラウザーに 伝えれればいいとは思うのですが、もしお分かりの 方がいらっしゃいましたら、教えていただければ ありがたいです。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • ファイルマネージャー

    perlで書かれたwebminにあるファイルマネージャーを利用すると、システムの所有権関係なく、ファイルの編集ができるようですが、その編集するためのソースコードがわかる方はいらっしゃいますか? 通常のopen関数ではできなかったし、net::sftp::foreignのputだとローカルとリモートのやり取りなので、リモートとローカルが同一のマシンでしかやり取りできず、端末を変えるとエラーになります。 レンタルサーバー向けのファイルマネージャーの開発になります。 裏技としてアカウント生成時にアカウント内に個別にファイル編集スクリプトをぶち込んでおいて、それを使って編集してやればやれなくはないですけど、それだと手間がかかりますので、あまりやりたくないです。 かと言って、ftpクライアントを入れるのがめんどいって方に入れていただくのも、なんと言いますか……

専門家に質問してみよう