C#のアプリケーション設定でプリンタ設定(PrinterSettings)を保存・読み込みできるようにする
C#でプリンターの設定(PrinterSettings)を保存する必要があったので、アプリケーション設定で保存するようしました。
しかし、アプリケーションが起動している最中は、設定の読み込み・保存が有効でも、アプリケーションを再起動すると設定が読み込まれない問題に遭遇しました。
いろいろ試した所、標準のやり方ではなく、手動でコードを書く必要があったのでその方法をまとめました。
手順
1.アプリケーション設定で通常通り設定を宣言している場合、削除します
2.アプリケーション設定の上部にある「コードの表示」をクリックします
3.設定用のコードが表示されるので、クラス内に設定名のプロパティで次のようなコードを追記します
[global::System.Configuration.UserScopedSettingAttribute()] [global::System.Configuration.SettingsSerializeAsAttribute(SettingsSerializeAs.Binary)] public PrinterSettings Printer { get { return ((PrinterSettings)(this["Printer"])); } set { this["Printer"] = value; } }
この場合は、PrinterSettingsという型で保存を行います。
プロパティ名・get/setの[]
内には設定名を宣言します。
通常のアプリケーション設定で宣言するとXMLで保存され、それが読み込まれないので設定が復元できないようです。
それを回避するため、上記コードの2行目にある[global::System.Configuration.SettingsSerializeAsAttribute(SettingsSerializeAs.Binary)]
を追加してバイナリで保存するようにします。
単純なプロパティのみのクラスで試した所、XML形式で保存され、読み込み・保存とも可能でした。
ひょっとすると一定の階層を超えると復元できないのかもしれません。
4.設定の読み込み・保存は通常通りのコードで可能です。
// 読み込み PrinterSettings p = Settings.Default.Printer; // 保存 Settings.Default.Printer = printerSettings; Settings.Default.Save();
まとめ
stringやintと同じような形でPrinterSettingsを保存しようとして、1日ぐらい悩みました。
こういうときは一晩おくと冷静になって解決方法が見つかるんですよね。
そのおかけでなんとか解決することができました。
基本的にアプリケーション設定にない型を保存する場合は、手動でプロパティを宣言しバイナリで保存するようにした方が良いでしょう。
参考
調査していると、プリンターの設定方法を質問しているページがあったので参考にしました。
やはり同じようにアプリケーションを再起動すると読み込まれないと書かれています。
上記サイトは、base64に変換して保存・読み込みする方法でしたが、そんなことしなくてもバイナリ設定で解決です。
現場ですぐに使える! VisualBasic 2015 逆引き大全 520の極意
- 作者: 増田智明,国本温子
- 出版社/メーカー: 秀和システム
- 発売日: 2016/06/25
- メディア: 単行本
- この商品を含むブログを見る
MacでJavaのインストールとバージョンの切り替えを行う
Javaのインストール
1.OracleサイトよりMac版のJDK単体をダウンロードします
Java SE Development Kit 8 - Downloads
2.ダウンロードしたdmgファイルを実行し、インストールを行います
3.ターミナルを起動し、Javaのバージョンを確認します
$ java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
Javaの切り替え
1.ターミナルを起動し、現在インストールされているJavaの一覧を表示します
$ /usr/libexec/java_home -V Matching Java Virtual Machines (4): 1.8.0_144, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home 1.7.0_80, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home 1.6.0_65-b14-468, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
2.現在使用されているJavaのバージョンを確認します。
$ java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
3.「.bash_profile」に環境変数「JAVA_HOME」を追加し、使用するJavaバージョンを指定します。
$ vi ~/.bash_profile # 以下を追記する、下記の1.7を1.6等に変更するとそのバージョンに変わる export JAVA_HOME=$(/usr/libexec/java_home -v 1.7) export PATH=${JAVA_HOME}:${PATH}
4.「.bash_profile」を再ロードして設定を有効に、Javaバージョンが変わっているか確認します
$ source ~/.bash_profile $ java -version java version "1.7.0_80" Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
元のバージョンに戻すには、「.bash_profile」に追加した環境変数を削除またはコメントアウトし、再ロードすれば戻ります。
Javaのアンインストール
Javaをインストールすると追加でインストールされ、古いJavaが残ったままになるので、その都度削除が必要です。
1.ターミナルを起動し、現在インストールされているJavaの一覧を表示します
$ /usr/libexec/java_home -V Matching Java Virtual Machines (4): 1.8.0_144, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home 1.7.0_80, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home 1.6.0_65-b14-468, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
2.削除コマンドを使って削除したいJavaのパスを指定し、削除します
$ rm -Rf /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk
Visual Studio 2015でCrystal Reportsを使えるようにする
※ 2019/12/31 ダウンロード関連説明を最新にしました
Visual Studio 2015で帳票の出力をしようと思い「Crystal Reports」を使うことにしました。
標準ではインストールされていないので、別途ダウンロードとインストールが必要です。
その時の手順をまとめましたので、参考にして下さい。
環境
OS | Windows 10 |
---|---|
Visual Studio | 2015 Community |
Crystal Reports | 13.0.20 |
手順
1.Visual Studioを起動しているなら終了させます。
2.次のサイトからCrystal Reportsをダウンロードします。
3.「CRforVS13SP26_0-10010309.EXE」のようなファイルがダウンロードされるので実行します。
4.「セットアップ言語の選択」が表示されるので「日本語」が選択されていることを確認し、「OK」をクリックします。
5.「次へ」をクリックします。
6.「使用許諾契約書に同意する」を選択し「次へ」をクリックします。
7.「次へ」をクリックします。
8.インストールが始まるのでしばらく待ちます。
9.「はい、64ビットランタイムをインストール」にチェックが入っていることを確認し「完了」をクリックします。
10.ランタイムのインストールが始まり、完了すると自動的にウインドウが消えます。
11.Visual Studioを起動し、プロジェクトから「新しい項目の追加」を選択します。
12.左メニューから「Reporting」を選択し、右側の一覧で「Crystal Reports」を選択すると開発が可能になります。
旧バージョンをダウンロードする
旧バージョンが必要な場合は、以下のサイトにリンクがあります。
www.tektutorialshub.com
不具合について
最新の「13.0.21」を適用すると右クリックメニューが文字化けする不具合があるとのコメントを頂きました。→対応方法があるようです。
2539511 - Context menu language not working for east Asia (JP, KO, zh-CN, zh-TW) and Russian languages in Visual Studio 2010+
スタードメインでメールを転送するためのドメイン設定方法
管理しているドメインをお名前.comからスタードメインに移管しました。
スタードメインにした理由は、他社と比較すると料金が安いためです。
スタードメインでメール転送設定を行ってみたのですが、なかなかうまくいかずハマったので、成功した方法を紹介します。
設定概要
スタードメインでは、サーバー管理ツールにあるメール転送設定を行っただけでは、メールが転送されないようです。
紹介する設定方法は、以下のような名前解決でメール転送を行います。
転送元メールアドレスにメール送信
↓
メールアドレスのドメインをMXレコードのドメインで名前解決
↓
MXレコードに設定された宛先(IPアドレス)に転送・名前解決
↓
Aレコードの宛先(スタードメインサーバー)に転送・名前解決
↓
メールが処理され、転送先メールアドレスにメールが届く
設定手順
1.スタードメインにアクセスし、ログインします。
2.左メニューの「スタードメイン管理」をクリックすると「管理ドメイン一覧」が表示されるので、メール転送したいドメインの「サーバー管理ツール」ボタンをクリックします。
3.サーバー管理ツールの「サーバー情報」をクリックし「IPアドレス」をメモします。
4.サーバー管理ツールの左メニューの「メール転送設定」をクリックし、「メールアドレス」「転送先メールアドレス」を追加します。
5.ドメイン管理ツールに戻り、「DNSレコード編集」ボタンをクリックします。
6.「レコード追加」をクリックし、次の2種類のレコードを追加します。
取得済みのドメインを「test.com」とします。
3でメモしたIPアドレスを「192.168.0.1」とします。
設定1 | 設定2 | |
ホスト名 | mail.test.com | 空欄 |
---|---|---|
タイプ | A(IPアドレス) | MX(メール) |
コンテンツ | 192.168.0.1 | mail.test.com |
優先度 | 空欄 | 0 |
7.ドメインの反映に少し時間がかかりますが、設定したメールアドレス宛にメールを送信して受信可能かテストします。
- 作者: きはしまさひろ
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/03/29
- メディア: 単行本
- この商品を含むブログを見る
MacのVMWare FusionからWindowsのVMWare Workstation Playerに移行する手順
MacとWindowsでは、日本語ファイル名の濁点・半濁点の扱いが異なるため、そのまま移行してもファイルのパスを認識しないため動作しません。
そのため、MacからWindowsに移行するには、事前に日本語を含まないファイル名に変更しておく必要があります。
同じようなサイトを参考に行ってみましたが、どうもスムーズにいかなかったので、スムーズにいった手順を書いてみました。
MacのVMWare Fusionの手順
1.ターミナルを起動し、移行したい仮想マシンがあるディレクトリに移動します。
cd "/Users/{ユーザー名}/Documents/Virtual Machines.localized/Windows 7 x64.vmwarevm"
2.アプリケーションディレクトの「VMWare Fusion.app」内にある「vmware-vdiskmanager」を使って仮想ディスクの名前を変更します。
仮想ディスク名は、「仮想ディスク-s001.vmdk」と連番が付いていますが、それを除いた名前を指定します。
コマンドを実行すると全てのファイル名が変更されます。
/Applications/VMware\ Fusion.app/Contents/Library/vmware-vdiskmanager -n 仮想ディスク.vmdk win7.vmdk
3.仮想マシンにある「*.vmx」ファイルを開き、10行目あたりの「scsi0:0.fileName」に2で設定した新しい名前に変更します。
Finderの場合、仮想マシン「*..vmwarevm」ファイルを右クリックし「パッケージの内容を表示する」をクリックします。
ターミナルの場合、VI等のエディタで編集します。
vi "/Users/onishi/Documents/Virtual Machines.localized/Windows 7 x64.vmwarevm/Windows 7 x64.vmx"
「*.vmx」を以下のように変更します。
# 変更前 scsi0:0.fileName = "仮想ディスク.vmdk" # 変更後 scsi0:0.fileName = "win7.vmdk"
4.ファイル名を変更した仮想マシンをWindowsにコピーします。
ネットワーク経由でも良いですが、ファイルサイズが大きいのでUSB3.0対応USBメモリを使うと早くコピーできます。
【Amazon.co.jp限定】 Transcend USBメモリ 16GB USB3.1 & USB 3.0 スライド式 ブラック (無期限保証) TS16GJF790KPE (FFP)
- 出版社/メーカー: トランセンド・ジャパン
- 発売日: 2016/03/04
- メディア: Personal Computers
- この商品を含むブログ (1件) を見る
WindowsのVMWare Workstation Playerの手順
1.Macからコピーした仮想マシンをVMWare Workstation Playerで開きます。
デフォルトの仮想マシンフォルダは、「C:¥Users¥{ユーザー名}¥Documents¥Virtual Machines」です。
2.仮想マシンを問題なく起動できると、移動またはコピーしたかのダイアログが表示されるので、「移動しました」を選択します。
3.環境によっては、キーボードフックタイムアウトの設定ダイアログが表示されるので、「OK」を選択します。
4.仮想マシンが正常に起動しWindowsが操作できることを確認します。追加でVMWare Toolsのインストールを行います。
Visual Studio 2015でWindows Installerを使えるようにする
Visual Studio 2015から2010のときに標準だったインストーラーが拡張機能として使えるようになりました。
英語表記ですが、機能的にほとんど変わっていないので心配ないと思われます。
インストール方法をまとめました。
環境
- Windows 10
- Visual Studio Community 2015
手順
1.ファイルメニューの「ツール」→「拡張機能と更新プログラム」を開きます
2.右上の検索欄に「installer」と入力して検索すると、一覧に「Microsoft Visual Studio 2015 Installer Project」が表示されるので「ダウンロード」をクリックします
3.ブラウザが起動するのでファイルをダウンロードします
4.ダウンロードしたファイルを起動します
5.Visual Studioを起動していると終了を促すメッセージが表示されるので、Visual Studioを終了させ「Retry」をクリックします
6.セットアップの内容が表示されるので確認し「Install」をクリックします
7.Windowsの権限許可が表示されるので「はい」をクリックします
8.インストールが始まるのでしばらく待ちます
9.インストールが完了したら「Close」をクリックします
10.Visual Studioを起動して任意のプロジェクトを開いてから、ファイルメニューの「ファイル」→「新しいプロジェクト」を選択します
11.「その他のプロジェクトの種類」→「Visual Studio Installer」を選択し、一覧の「Setup Project」を選択します。
12.既存のプロジェクトにSetupプロジェクトが追加され、インストーラーを作成できるようになります。
作って覚えるVisual C# 2015 デスクトップアプリ入門
- 作者: 荻原裕之,宮崎昭世
- 出版社/メーカー: 秀和システム
- 発売日: 2016/01/29
- メディア: 単行本
- この商品を含むブログ (1件) を見る
GlassFish4でSpringBootを動かすとログが無限に出力される対処方法
GlassFish4でSpringBootアプリを動かすと、アプリで設定したログファイルに無限にログが出力され、サーバーのディスクを使い切るという現象に遭遇しました。
いろいろ調べてもなかなか対処方法がありませんでしたが、困った時の「stack overflow」に似たようなことで質問が上がっていたので試したら無事解決したので、その手順を紹介します。
動作環境
SpringBoot | 1.3.6 |
---|---|
Logback | 1.1.7 |
SLF4j | 1.7.21 |
GlassFish | 4.1.1 Full Profile |
※GlassFishは、PayaraServer 163 Fullのdomain1を使用
問題の現象
GlassFishにSpringBootアプリをwarでデプロイし、アプリが起動するとアプリで設定したログファイルに次のようなものが無限に出力される。
INFO [2016-11-08 16:59:28.375] unknown.jul.logger . ____ _ __ _ _ INFO [2016-11-08 16:59:28.397] unknown.jul.logger /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.397] unknown.jul.logger ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ INFO [2016-11-08 16:59:28.397] unknown.jul.logger \\/ ___)| |_)| | | | | || (_| | ) ) ) ) INFO [2016-11-08 16:59:28.397] unknown.jul.logger ' |____| .__|_| |_|_| |_\__, | / / / / INFO [2016-11-08 16:59:28.398] unknown.jul.logger =========|_|==============|___/=/_/_/_/ INFO [2016-11-08 16:59:28.398] unknown.jul.logger :: Spring Boot :: (v1.3.6.RELEASE) INFO [2016-11-08 16:59:28.398] unknown.jul.logger 2016-11-08 16:59:28.375 INFO 2466 --- [ Thread-8] unknown.jul.logger : . ____ _ __ _ _ INFO [2016-11-08 16:59:28.398] unknown.jul.logger INFO [2016-11-08 16:59:28.375] unknown.jul.logger . ____ _ __ _ _ INFO [2016-11-08 16:59:28.398] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.398] unknown.jul.logger INFO [2016-11-08 16:59:28.397] unknown.jul.logger /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.399] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ INFO [2016-11-08 16:59:28.399] unknown.jul.logger INFO [2016-11-08 16:59:28.397] unknown.jul.logger ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ INFO [2016-11-08 16:59:28.399] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : \\/ ___)| |_)| | | | | || (_| | ) ) ) ) INFO [2016-11-08 16:59:28.399] unknown.jul.logger INFO [2016-11-08 16:59:28.397] unknown.jul.logger \\/ ___)| |_)| | | | | || (_| | ) ) ) ) INFO [2016-11-08 16:59:28.399] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : ' |____| .__|_| |_|_| |_\__, | / / / / INFO [2016-11-08 16:59:28.400] unknown.jul.logger INFO [2016-11-08 16:59:28.397] unknown.jul.logger ' |____| .__|_| |_|_| |_\__, | / / / / INFO [2016-11-08 16:59:28.400] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : =========|_|==============|___/=/_/_/_/ INFO [2016-11-08 16:59:28.400] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger =========|_|==============|___/=/_/_/_/ INFO [2016-11-08 16:59:28.400] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : :: Spring Boot :: (v1.3.6.RELEASE) INFO [2016-11-08 16:59:28.400] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger :: Spring Boot :: (v1.3.6.RELEASE) INFO [2016-11-08 16:59:28.400] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : 2016-11-08 16:59:28.375 INFO 2466 --- [ Thread-8] unknown.jul.logger : . ____ _ __ _ _ INFO [2016-11-08 16:59:28.401] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger 2016-11-08 16:59:28.375 INFO 2466 --- [ Thread-8] unknown.jul.logger : . ____ _ __ _ _ INFO [2016-11-08 16:59:28.401] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : INFO [2016-11-08 16:59:28.375] unknown.jul.logger . ____ _ __ _ _ INFO [2016-11-08 16:59:28.401] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger INFO [2016-11-08 16:59:28.375] unknown.jul.logger . ____ _ __ _ _ INFO [2016-11-08 16:59:28.401] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.401] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.402] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : INFO [2016-11-08 16:59:28.397] unknown.jul.logger /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.402] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger INFO [2016-11-08 16:59:28.397] unknown.jul.logger /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.402] unknown.jul.logger 2016-11-08 16:59:28.399 INFO 2466 --- [ Thread-8] unknown.jul.logger : 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ INFO [2016-11-08 16:59:28.402] unknown.jul.logger INFO [2016-11-08 16:59:28.399] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
GlassFishでLoggerが認識されていないのが原因のようです。
手順
GlassFishにあるファイルを編集する前にバックアップを取りましょう。
1.GlassFishが起動している場合、停止する
glassfish4/glassfish/bin/asadmin stop-domain domain1
2.GlassFIshのlibディレクトリにlogback・slf4jライブラリを配置する
# 配置先 glassfish4/glassfish/lib/endorsed # 配置するライブラリ jul-to-slf4j-x.x.x.jar slf4j-api-x.x.x.jar logback-core-x.x.x.jar logback-classic-x.x.x.jar
3.GlassFishのconfigディレクトリにlogback.xmlを配置し、次のように定義する
vi glassfish/domains/domain1/config/logback.xml
<configuration debug="true" scan="true"> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>log/server.log</file> <append>true</append> <encoder> <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{52} - %msg%n</Pattern> </encoder> </appender> <root> <level value="INFO"/> <appender-ref ref="FILE"/> </root> </configuration>
4.GlassFishにある「logging.properties」の一部を書き換える
管理コンソールで変更している場合、変更した値になっているので注意して下さい。
vi glassfish4/glassfish/domain1/config/logging.properties
Before
handlers=java.util.logging.ConsoleHandler handlerServices=com.sun.enterprise.server.logging.GFFileHandler java.util.logging.ConsoleHandler.formatter=com.sun.enterprise.server.logging.UniformLogFormatter com.sun.enterprise.server.logging.GFFileHandler.formatter=com.sun.enterprise.server.logging.ODLLogFormatter com.sun.enterprise.server.logging.GFFileHandler.file=${com.sun.aas.instanceRoot}/logs/server.log com.sun.enterprise.server.logging.GFFileHandler.rotationTimelimitInMinutes=0 com.sun.enterprise.server.logging.GFFileHandler.flushFrequency=1 java.util.logging.FileHandler.limit=50000 com.sun.enterprise.server.logging.GFFileHandler.logtoConsole=false com.sun.enterprise.server.logging.GFFileHandler.rotationLimitInBytes=2000000 com.sun.enterprise.server.logging.GFFileHandler.excludeFields= com.sun.enterprise.server.logging.GFFileHandler.multiLineMode=true com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging=false java.util.logging.FileHandler.count=1 com.sun.enterprise.server.logging.GFFileHandler.retainErrorsStasticsForHours=0 log4j.logger.org.hibernate.validator.util.Version=warn com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles=0 com.sun.enterprise.server.logging.GFFileHandler.rotationOnDateChange=false java.util.logging.FileHandler.pattern=%h/java%u.log java.util.logging.FileHandler.formatter=java.util.logging.XMLFormatter
After
handlers=org.slf4j.bridge.SLF4JBridgeHandler #変更 handlerServices=com.sun.enterprise.server.logging.GFFileHandler java.util.logging.ConsoleHandler.formatter=com.sun.enterprise.server.logging.UniformLogFormatter com.sun.enterprise.server.logging.GFFileHandler.formatter=com.sun.enterprise.server.logging.ODLLogFormatter com.sun.enterprise.server.logging.GFFileHandler.file=${com.sun.aas.instanceRoot}/logs/server.log #そのまま com.sun.enterprise.server.logging.GFFileHandler.rotationTimelimitInMinutes=0 com.sun.enterprise.server.logging.GFFileHandler.flushFrequency=1 java.util.logging.FileHandler.limit=50000 com.sun.enterprise.server.logging.GFFileHandler.logtoConsole=false com.sun.enterprise.server.logging.GFFileHandler.rotationLimitInBytes=2000000 com.sun.enterprise.server.logging.GFFileHandler.excludeFields= com.sun.enterprise.server.logging.GFFileHandler.multiLineMode=true com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging=false java.util.logging.FileHandler.count=1 com.sun.enterprise.server.logging.GFFileHandler.retainErrorsStasticsForHours=0 log4j.logger.org.hibernate.validator.util.Version=warn com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles=0 com.sun.enterprise.server.logging.GFFileHandler.rotationOnDateChange=false java.util.logging.FileHandler.pattern=%h/java%u.log com.sun.enterprise.server.logging.GFFileHandler.formatter=com.sun.enterprise.server.logging.UniformLogFormatter #変更 com.sun.enterprise.server.logging.GFFileHandler.alarms=false #追加
5.GlassFishの「domain.xml」にJVMオプションを追加する
vi glassfish4/glassfish/domains/domain1/config/domain.xml
domain.xml
# <domain> # <configs> # <config name="server-config"> # <java-config> 配下に追加する(250行目の次) <jvm-options>-Djava.util.logging.config.file=${com.sun.aas.instanceRoot}/config/logging.properties</jvm-options> <jvm-options>-Dlogback.configurationFile=file:///${com.sun.aas.instanceRoot}/config/logback.xml</jvm-options>
6.GlassFishを起動する
glassfish4/glassfish/bin/asadmin start-domain domain1
補足
SpringBootアプリには、「jul-to-slf4j」は含んでいません。
logback.xmlは、SpringBootのbase.xmlを読み込み、独自設定を追加しています。
application.propertiesの「logging.file」は、設定していません。
logging.properties(alarms以外)、jvm-optionは、管理コンソールの「server-config」で設定できます。
まとめ
ネットにあった内容をそのまま試して日本語に起こしただけです。
詳しいことは分からないので聞かないようにお願いしますw
この記事で関連する書籍
Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築
- 作者: 寺田佳央,猪瀬淳,加藤田益嗣,羽生田恒永,梶浦美咲,小田圭二
- 出版社/メーカー: 翔泳社
- 発売日: 2015/12/16
- メディア: 大型本
- この商品を含むブログ (7件) を見る
Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
- 作者: 株式会社NTTデータ
- 出版社/メーカー: 翔泳社
- 発売日: 2016/07/20
- メディア: Kindle版
- この商品を含むブログ (1件) を見る